Dado uma classe qualquer… com campos já inicializados.
O método
getClass().getDeclaredFields()
me retorna um array de campos da classe.
Minha pergunta é…
É possível eu pegar os valores destes campos?
Dado uma classe qualquer… com campos já inicializados.
O método
getClass().getDeclaredFields()
me retorna um array de campos da classe.
Minha pergunta é…
É possível eu pegar os valores destes campos?
acredito que se vc colocar os campos do array em um objeto do mesmo tipo do campo e dar um getText() acho que sim
tenta fazer isso
acredito que se vc colocar os campos do array em um objeto do mesmo tipo do campo e dar um getText() acho que simtenta fazer isso
Como pretende dar um getText() se for um tipo primitivo, por exemplo?!
Cafezin, segue a solução:
public class Teste2 {
public void showValues() throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException {
Teste te = new Teste();
Field[] fields = te.getClass().getDeclaredFields();
for(int a=0; a < fields.length; a++) {
System.out.println(fields[a].get(te));//Utiliza a instancia da classe para capturar o valor da variavél.
}
}
public static void main(String[] args) throws Exception, IllegalAccessException {
Teste2 t = new Teste2();
t.showValues();
}
}
Quando utilizar o método get a partir do seu field, passe como parametro a instancia da classe.
Abraços.
No caso vc vai estar trabalhando com a classe e não com o objeto. Creio q não seja possível.
edit: Pensando bem, passando o objeto como parâmetro dá certo sim … AUhuahuauhuahAUhuauh
No caso vc vai estar trabalhando com a classe e não com o objeto. Creio q não seja possível.edit: Pensando bem, passando o objeto como parâmetro dá certo sim … AUhuahuauhuahAUhuauh
Haha!! Dá né?! 
foi mal, é que eu fiz isso com um vetor de objetos, e levei apenas em consideração objetos e não variaveis
acredito que se vc colocar os campos do array em um objeto do mesmo tipo do campo e dar um getText() acho que simtenta fazer isso
Como pretende dar um getText() se for um tipo primitivo, por exemplo?!
Cafezin, segue a solução:public class Teste2 { public void showValues() throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException { Teste te = new Teste(); Field[] fields = te.getClass().getDeclaredFields(); for(int a=0; a < fields.length; a++) { System.out.println(fields[a].get(te));//Utiliza a instancia da classe para capturar o valor da variavél. } } public static void main(String[] args) throws Exception, IllegalAccessException { Teste2 t = new Teste2(); t.showValues(); } }Quando utilizar o método get a partir do seu field, passe como parametro a instancia da classe.
Abraços.
Colega,
Está perfeito! Exatamento isso.
Muito obrigado.
E obrigado pelos demais também.
foi mal, é que eu fiz isso com um vetor de objetos, e levei apenas em consideração objetos e não variaveis
Que isso cara, fiz uma pergunta simples demonstrado que você poderia estar errado, assim como já postei várias vezes aqui estando equivocado.
Por isso gosto do GUJ, galera gente fina e compartilhando conhecimento!
Cafezim, nada cara!
Faça bom uso:)