Boa tarde.
Como obtenho o tipo de dado de um elemento de um LinkedHashMap?
lhm.get(<Item do Map>)
Boa tarde.
Como obtenho o tipo de dado de um elemento de um LinkedHashMap?
lhm.get(<Item do Map>)
Se você não está usando Generics, get é do tipo Object, ou seja, você pode chamar getClass() para obter o tipo do objeto retornado por get.
Boa!, boa!.
Obrigado.
Agora!, o que venha a ser Generics?
Aquela coisa que o pessoal usa, que tem "<" e ">". Exemplo:
Map<String, Cliente> listaClientes = new LinkedHashMap<String, Cliente>();
Cliente cli = listaClientes.get ("João Severino");
Huuuuuuuuummmmmmmmmm!
Entendi!
Valeu MERMO!
Só mais uma coisinha:
switch (lhmAtributosClasse.get(strNomeAtributo).getClass().getSimpleName()) {
case 2: //Types.NUMERIC:
pstmt.setInt(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
case 91: //Types.DATE:
pstmt.setDate(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
case 92: //Types.TIME:
pstmt.setTime(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
default:
System.out.println("");
}
incompatible Type
O que devo colocar ao ado do case?
Ou será que cosigo pegar o tipo como INT?
Obrigado mais uma vez.
Huuuuuuuuuuuummmmmmmmmmmmm!
Entendi!
Valeu MERMO!
Só mais uma coisinha:
Como transformar isso em um inteiro?
[color=red]lhmAtributosClasse.get(strNomeAtributo).getClass().getSimpleName()[/color]
switch (lhmAtributosClasse.get(strNomeAtributo).getClass().getSimpleName()) {
case "2: //2- Types.NUMERIC:
pstmt.setInt(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
case 91: //91 - Types.DATE:
pstmt.setDate(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
case 92: //92 - Types.TIME:
pstmt.setTime(i, this.TrataDadosAGravar(lhmAtributosClasse.get(strNomeAtributo)));
break;
default:
System.out.println("");
}
Ainda não consegui resolver isso.
Quem pode me ajudar?
Valeu!
getSimpleName lhe retorna uma string.
Em vez de switch, use um monte de “ifs” e “equals”.
Pelo que acho, dá a impressão que getSimpleName vai sempre lhe retornar a mesma coisa (“Types”); é que não conheço o resto do seu programa, nem sei se Types é uma classe, uma interface ou um enum.
Se você souber que lhmAtributosClasse.get(strNomeAtributo) instanceof Types, então você pode fazer um cast para Types e efetuar o switch (esse Types.NUMERIC é uma constante de um enum?)