Ajuda com reflexões

Bem segundo a pesquisa que tive isso seria possivel usando reflexões.

tenho uma classe com variaveis privadas

package br.com.folhax.beans;

/**
 *
 * @author Matheus
 */
public class Cbo {

    private int cbocodigo;
    private String cbodescricao;

    /**
     * @return the cbocodigo
     */
    public int getCbocodigo() {
        return cbocodigo;
    }

    /**
     * @param cbocodigo the cbocodigo to set
     */
    public void setCbocodigo(int cbocodigo) {
        this.cbocodigo = cbocodigo;
    }

    /**
     * @return the cbodescricao
     */
    public String getCbodescricao() {
        return cbodescricao;
    }

    /**
     * @param cbodescricao the cbodescricao to set
     */
    public void setCbodescricao(String cbodescricao) {
        this.cbodescricao = cbodescricao;
    }

}

Quero usar reflexões para em outra classe obter essas variaveis privadas (cbocodigo, cbodescricao) e imprimir o nome delas com System.out.println(), ou seja, eu passo um objeto para ele e ele imprime o nome das variaveis privadas que existem no objeto que eu mandei.

Isso é possivel como reflexões? Como?

O método getFields ( http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getFields() ) retorna apenas os campos públicos (não os privados) desta classe e de suas subclasses, caso existirem.
O método getDeclaredFields ( http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getDeclaredFields() ) retorna os campos declarados nesta classe - não importando se são públicos, privados ou protegidos.
Provavelmente você quer usar o getDeclaredFields.

import java.lang.reflect.*;
import java.util.*;

class ImprimirNomesVariaveisInstancia {
    public List<String> listarNomesVariaveis (Object obj) throws Exception {
        Class<?> klass = obj.getClass();
        Field[] fields = klass.getDeclaredFields();
        List<String> nomes = new ArrayList<String>();
        for (Field field : fields) {
            nomes.add (field.getName());
        }
        return nomes;
    }
    public static void main (String[] args) throws Exception {
        // Note que a classe java.lang.String tem vários campos, alguns deles estáticos
        // como serialVersionUID, e outros deles variáveis de instância, como value, offset e 

count.
        System.out.println (new ImprimirNomesVariaveisInstancia().listarNomesVariaveis (" objeto 

string "));
    }
}

show de bola tio

mas ele me retorna completo

private int Matematica.teste1
private java.lang.String Matematica.teste2

tem como pegar só o nome do campo (teste1, teste2) ?

atributos[i].getName()

Beijo! :lol:

valeu tio

O nome do campo (ex. “teste1”) vem como Field.getName()
O nome com descrição de tipo etc. (ex. “private java.lang.String Matematica.teste2”) é retornado por Field.toString()