Limpar objeto usando reflexão?

Boa tarde. Gostaria de criar um método pra eu limpar meu objeto. Exemplificando, eu instancio um novo objeto no início da minha classe, sendo que eu usarei objeto desta classe várias vezes, e, não quero instanciar o objeto várias vezes, eu só quero limpar o objeto. Me indicaram a fazer reflexão, mas eu ainda não sei como usar reflexão. Caso alguém possa me ajudar, muito obrigado. Abaixo coloco um exemplo para deixar mais clara minha duvida:


package Outros;

/**
 * @author fabio
 * 
 */
public class Raiz {

	private Integer id;

	private String nome;

	private String profissao;

	/**
	 * 
	 * @param objeto
	 * @duvida Gostaria de saber como fazer para eu pegar acessar os métodos pra
	 *         eu setar NULL pras variaveis. Sendo o método setVARIAVEL, todos
	 *         os meus métodos setters.
	 */
	public static void limpaObjeto(Object objeto) {
		objeto.setVARIAVEL(null);
		objeto.setVARIAVEL(null);
		objeto.setVARIAVEL(null);
	}

	public static void main(String[] a) {
		Raiz pess = new Raiz();
		pess.setId(1);
		pess.setNome("Zoroastro");
		pess.setProfissao("Da Vida");
		limpaObjeto(pess);

	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getProfissao() {
		return profissao;
	}

	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}
}

cara, da uma olhada no BeanUtils no site http://jakarta.apache.org na sessao de commons… essa api ja tem bastante coisa pronta

Olá, eu consegui fazer a reflexão, quem quiser saber como é:

public class Raiz {
	/**
	 * Classe criada para estúdo de como usar reflexão.
	 */

	private Integer id;

	private String nome;

	private String profissao;

	/**
	 * 
	 * @param objeto
	 * @descridcao Este método limpa o objeto setando todos os fields iguais a
	 *             null
	 */
	public static void limpaObjeto(Object objeto) {
		try {
			if (objeto != null) {
				// classe = classe pai do objeto passado como parâmetro
				Class classe = objeto.getClass();
				// lstMetodos[] = todos os metodos da classe encontrada.
				Method lstMetodos[] = classe.getDeclaredMethods();
				System.out.println("\n\nLISTA DE SETTERS\n\n");
				// Percorre todos os métodos da classe
				for (int i = 0; i < lstMetodos.length; i++) {

					// Quando o metodo comecar com set então o metodo atual
					// recebe null
					if (lstMetodos[i].getName().substring(0, 3).toLowerCase()
							.equals("set")) {

						// arglist = é o valor que deseja-se passar no parâmetro
						// do método atual
						Object[] arglist = new Object[] { null };
						// é invocado o método setobjeto passando os parâmetros
						// necessários
						lstMetodos[i].invoke(objeto, arglist);
						System.out
								.println("Método: " + lstMetodos[i].getName());
					}
				}
			}
		} catch (Throwable e) {
			System.err.println(e);
		}

	}

	public static void main(String args[]) {
		Raiz pess = new Raiz();
		pess.setId(1);
		pess.setNome("Zoroastro");
		pess.setProfissao("Analista");
		System.out.println(pess.getId());
		limpaObjeto(pess);
		System.out.println("Objeto limpo!");
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getProfissao() {
		return profissao;
	}

	public void setProfissao(String profissao) {
		this.profissao = profissao;
	}
}

Abraços.

Por que vc prefere limpar o objeto ao inves de criar um novo?

valeuz…