Ref.: Conversão de tipos

Bom dia,

            Tendo eu,

private static String Payment_Installment(Properties ctx, int WindowNo, MTab mTab, MField mField, Object value) {

//Como posso fazer para converter o <Object value> em um inteiro?

}

ex:

Object obj = new Integer(5);
Integer x = (Integer) obj;

//ou
int xx =  ((Integer) obj).intValue();
Object o = new Object();
Integer i = ( Integer ) o;

Mas vai ganhar uma bela ClassCastException se o Objeto não for um inteiro.

Sou recente no JAVA, mas, desde já não gostei da prática de “Type Cast” (Nem sei se realmente é esse o nome), porém resolvi desta forma:

private static String Payment_Installment(Properties ctx, int WindowNo, MTab mTab, MField mField, Object value) {

    Integer intA = new Integer(value.toString()).intValue());

}

Gostaria de saber se essa pode ser uma boa prática.

Por favor me respondam.

Obrigado!

Perdão, a forma correta é :

    Integer intA = new Integer(value.toString());

Não!

As sugestões anteriores são mais adequadas.

E o que vc não gostou no Casting?

Desta forma (Integer intA = (Integer) value;) dá a entender que o cara diz o seguinte "Se vire!, quero que esse cara seja um inteiro) jogando assim toda a responsabilidade para o tal do “Casting”.

Mas tudo bem!, a forma que usei tb. funciona não é?

Então irei optar por ela.

Obrigado a todos!

Se a sua variável “value” guardar a referência para um Integer, funciona numa boa, senão, você receberá uma exceção do tipo ClassCastException.

Sua sugestão funciona, pero no mucho.

Se “value” for String e contiver uma cadeia, por exemplo “123”, funciona sim. Se for um outro tipo, pode dar pau.

Bem, se o objeto não é um integer como esperado, creio que isso seria uma exceção da aplicação. Olha só! Uma palavra chave do Java! :smiley:

Tratamento de exceção quer dizer exatamente isso, não o rebaixe a um mero tratamento de erro :smiley:

try
{
    // cast
}
catch( ClassCastException cce )
{
    // o meu deus, não é um inteiro, o que fazer então?
}

OK!, vc´s venceram e convenceram, irei usar este tal de “CASTING”.

Entendi!

Valeu!

T+