[Resolvido]Dúvida Java Reflection

3 respostas
guilherme.dio

Bom dia !

Estou criando um pequeno serializador que transforma CSV em um Objeto do java, então eu passo um Class e um File para um Objeto da classe uq serializa e ele ja transforma o csv em um objeto do tipo da classe que parametrizei.

Porém estou com um problema na hora de alimentar Inner Classes, pois na hora em que recupero os DeclaredFields só aparecem os Campos da classe final e nao de sua(s) super class(es).

Alguem saberia algum modo de pegar estes campos da Super ?

//Recupera somente os campos declarados da classe em si, e não de suas classes superiores.
classe.getDeclaredFields()

3 Respostas

Rodrigo_Sasaki

ja tentou isso? classe.getSuperclass().getDeclaredFields();

Baratao
private List<Field> getFields(Class<?> clazz) {

		List<Field> listFields = new ArrayList<Field>();
		
		Field[] fields = null;
		
		while (clazz != null) {
			
			fields = clazz.getDeclaredFields();

			listFields.addAll(Arrays.asList(fields));
			
			clazz = clazz.getSuperclass();
		}
		
		return listFields;
	}

Acho que isso resolve.

guilherme.dio
Baratao:
private List<Field> getFields(Class<?> clazz) {

		List<Field> listFields = new ArrayList<Field>();
		
		Field[] fields = null;
		
		while (clazz != null) {
			
			fields = clazz.getDeclaredFields();

			listFields.addAll(Arrays.asList(fields));
			
			clazz = clazz.getSuperclass();
		}
		
		return listFields;
	}

Acho que isso resolve.

Maravilha, vou usar esta regra, vlw cara !

Criado 18 de maio de 2012
Ultima resposta 18 de mai. de 2012
Respostas 3
Participantes 3