Olá…
Estou com um problema de cast que não estou conseguindo resolver. Já dei uma lida no forum mas nada resolveu.
O problema pode ser resumido com o código abaixo:
eu preciso tratar uma estrutura de dados parecida com:
ArrayList dados = new ArrayList();
// Alimenta as linhas de dados
dados.add(new String[] {"111111", "SPPP", "10102004"});
dados.add(new String[] {"222222", "RJJJJ", "10102004"});
dados.add(new String[] {"323232", "RRRRN", "10102004"});
dados.add(new String[] {"353485", "R24J", "10102004"});
dados.add(new String[] {"0950984", "RN476", "10102004"});
O metodo que faze isso é parecido com:
public void metodoTratador(ArrayList dados){
ClasseQueTrataDados tratar = ClasseQueTrataDados();
ArrayList allData = dados;
Iterator iterar = allData.iterator();
while(iterar.hasNext()){
// imprimi o conteudo do primeiro resitro...
System.out.println(" conteudo do data.get(0) "+(allData.get(0)));
// o CastException acontece logo de cara no no primeiro cast...
tratar.setCampoId(Long.parseLong((String)(allData.get(0))));
tratar.setCampoTipo((String) allData.get(1));
tratar.setCampoData(new Date( (String)data.get(2)));
}
O conteudo do primeiro registro (allData.get(0)) é:
conteudo do data.get(0) [Ljava.lang.String;@16925b0.
Não é acusado nehum erro de cast na compilação…
Tenho 3 perguntas que procuro por respostas:
1º Como fazer o cast corretamente?
2º A implementação do laço (while) está correto, ie, vai percorrer
adequadamente o Arraylist?
3º new Date(…) aparece com depreciado qual outro metodo q eu poderia usar pra converter uma string para um tipo data, mais especificamente, existe algum metodo da SimpleDateFormat que faça isso?
Desde já agradeço pela atenção…