Quando se usa:
float a = 30.5
int b = (int) a;
ele converte…
mas qndo se usa com String/char, etc… da “tipos inconvertíveis”
Afinal de contas… qual a devida utilidade disto ?
Abçs
Quando se usa:
float a = 30.5
int b = (int) a;
ele converte…
mas qndo se usa com String/char, etc… da “tipos inconvertíveis”
Afinal de contas… qual a devida utilidade disto ?
Abçs
Isto se chama “cast”. O cast normalmente não é usado para conversão (por incrível que pareça!). É usado para reinterpretar um determinado valor.
Ele só funciona para conversão quando usado com tipos primitivos (e olhe lá), e String não é um tipo primitivo.
Use isso para seus objetos e filhos,
Tipo alguém que tem que receber JFrame por obrigação de interface pode receber o “MyJFrame” e dar um cast pra ter exatamente o que vc precisa. Veja umas coisas que tem de Struts, serve de exemplo,
bom vc vai ver “cast” bastante com objetos, com tipos primitivos muito raro, e as vezes nao funciona como o thingol falou… e lembre-se String eh um objeto nao eh um tipo primitivo como em outras linguaguens de programação declara String como tipo primitivo em java eh diferente!! e ela não é mutável!!
Você também pode fazer cast de um tipo de uma superclasse para uma subclasse, quando o objeto for efetivamente daquela subclasse.
Por exemplo, vamos supor que você criou a variável objetoQualquer desse jeito:
Object objetoQualquer = new ArrayList();
O java não deixará você usar os recursos da lista, pois o tipo de variável é object. Isso pq o java não sabe que o objeto em questão é uma lista. Mas você, programador, manda. E você sabe. Então você faz:
ArrayList umaLista = (ArrayList) objetoQualquer;
No mais, você usa cast em tipos primitivos quando você quer converter um tipo numérico para outro “menor”. Por exemplo, no seu caso, int não suporta casas decimais. Portanto, converter um float para um int pode resultar em perda de informação. Se você tentar fazer a atribuição direta, o java não vai deixar, e vai ter informar isso. Mas você é o programador e manda, então você diz explicitamente para ele que quer “expremer” a variável float num int. O mesmo vale, por exemplo, se você tentar atribuir um long para um int, um int para um byte, um double para um float, etc. Em todos esses casos, de um maior para um menor, você terá que utilizar cast.
Muito bom! Parabéns pra vocês, valeu!
[quote=peerless]Quando se usa:
float a = 30.5
ele converte…
mas qndo se usa com String/char, etc… da “tipos inconvertíveis”
Afinal de contas… qual a devida utilidade disto ?
Abçs[/quote]
‘String’ é um objeto e não dá para fazer um casting de objeto para tipo primitivo. No caso do char, o casting ocorre entre ele e outros tipos primitivos. O único tipo primitivo que não aceita casting é o boolean.
No java1.5 existe o autoboxing e autounboxing… pesquise sobre isso, é interessante, porém deve ser utilizado com cuidado.
[]'s