[Resolvido]Duvidas sobre Objetos e Arrays

5 respostas
E

Tenho um DataTable com 6 colunas, 5 delas exibem valores 1 deles é um commandlink que chama um metodo de alteração da classe.
No meu metodo da classe faço o seguinte

Object teste1=FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(“tudo”);
//pego as 5 colunas com os valores

String teste=teste1.toString(); // Quando faço o casting de Objetos para String consigo visualizar os seguintes valores: teste= “{t_year_o=2007, t_codi_o=001, t_cpcl_o=11027 , t_cuni_o=KG , t_pric_o=105.0}”

Agora eu gostaria de retirar deste objeto(teste1) ou deste array(teste) os valores de uma forma mais inteligente do que como estou fazendo atualmente utilizando o substring

String ano=teste.substring(10,14);

Alguem saberia como fazer? tenho que abandonar essa historia de substring pois to construindo um novo dataTable onde é exibido uma coluna descrição e como vc sabe descrição pode vir com varios caracteres ou pouco caracteres… então fica dificil usar a substring… alguem saberia como tirar os valores de alguma outra forma?

agradeco,

5 Respostas

T

Evite usar toString - é algo que se usa só para debugar. Trabalhe com o objeto mesmo:

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo") -&gt retorna um objeto de que tipo? (Dica: para saber o tipo, faça algo como:

Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo");
System.out.println (obj.getClass().getName());

Se você souber o tipo, fica mais fácil trabalhar. Aí você pode fazer um cast, em vez de usar "substring" que é claro que é uma gambiarra no seu caso.

E

thingol:
Evite usar toString - é algo que se usa só para debugar. Trabalhe com o objeto mesmo:

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo") -&gt retorna um objeto de que tipo? (Dica: para saber o tipo, faça algo como:

Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo");
System.out.println (obj.getClass().getName());

Se você souber o tipo, fica mais fácil trabalhar. Aí você pode fazer um cast, em vez de usar "substring" que é claro que é uma gambiarra no seu caso.

Sim, sim, é uma gambiarra sim…
obrigado por ter respondido,
então, eu fiz o que vc disse e retornou o seguinte: java.util.LinkedHashMap
agora, como eu faria o cast para retirar os valores("{t_year_o=2007, t_codi_o=001, t_cpcl_o=11027 , t_cuni_o=KG , t_pric_o=105.0}) desse objeto ??

desde já agradeco

E

thingol:
Evite usar toString - é algo que se usa só para debugar. Trabalhe com o objeto mesmo:

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo") -&gt retorna um objeto de que tipo? (Dica: para saber o tipo, faça algo como:

Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo");
System.out.println (obj.getClass().getName());

Se você souber o tipo, fica mais fácil trabalhar. Aí você pode fazer um cast, em vez de usar "substring" que é claro que é uma gambiarra no seu caso.

Sim, sim, é uma gambiarra sim…
obrigado por ter respondido,
então, eu fiz o que vc disse e retornou o seguinte: java.util.LinkedHashMap
agora, como eu faria o cast para retirar os valores("{t_year_o=2007, t_codi_o=001, t_cpcl_o=11027 , t_cuni_o=KG , t_pric_o=105.0}) desse objeto ??

desde já agradeco

E

thingol:
Evite usar toString - é algo que se usa só para debugar. Trabalhe com o objeto mesmo:

FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo") -&gt retorna um objeto de que tipo? (Dica: para saber o tipo, faça algo como:

Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo");
System.out.println (obj.getClass().getName());

Se você souber o tipo, fica mais fácil trabalhar. Aí você pode fazer um cast, em vez de usar "substring" que é claro que é uma gambiarra no seu caso.

Sim, sim, é uma gambiarra sim…
obrigado por ter respondido,
então, eu fiz o que vc disse e retornou o seguinte: java.util.LinkedHashMap
agora, como eu faria o cast para retirar os valores("{t_year_o=2007, t_codi_o=001, t_cpcl_o=11027 , t_cuni_o=KG , t_pric_o=105.0}) desse objeto ??

desde já agradeco

E

Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(“tudo”);
System.out.println (obj.getClass().getName());

HashMap hmp = new HashMap();   

hmp=(HashMap) obj;
	
//t_year_o=(String) hmp.get("t_year_o");
t_year_o=hmp.get("t_year_o").toString();
String t_codi_o= hmp.get("t_codi_o").toString();
t_cpcl_o=hmp.get("t_cpcl_o").toString();
String t_cuni_o=hmp.get("t_cuni_o").toString();
String t_pric_o= hmp.get("t_pric_o").toString();
Criado 14 de setembro de 2007
Ultima resposta 24 de set. de 2007
Respostas 5
Participantes 2