Oi,
Alguém saberia me dizer qual a sequência de refatorações para se substituir o uso de uma Map<String, Object> por uma classe?
Por exemplo, digamos que eu tenha:
public class Main
{
public static void main (String[] args)
{
Map<String, Object> pessoa = new HashMap<String, Object>();
pessoa.put("nome", "Fulano");
pessoa.put("idade", 23);
System.out.println("Existe uma pessoa chamada " + pessoa.get("nome") + " com idade igual a " + pessoa.get("idade") + "anos.");
}
}
O trabalho seria refatorar o código acima para chegar no que está abaixo:
public class Pessoa
{
private String nome;
private int idade;
public String getNome()
{
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public int getIdade()
{
return idade;
}
public void setIdade(int idade)
{
this.idade = idade;
}
}
public class Main
{
public static void main (String[] args)
{
Pessoa pessoa = new Pessoa();
pessoa.setNome("Fulano");
pessoa.setIdade(23);
System.out.println("Existe uma pessoa chamada " + pessoa.getNome() + " com idade igual a " + pessoa.getIdade() + "anos.");
}
}
Valeu!
Sequencia de refatorações? Você pegou uma estrutura e transformou em outra sem mudar o comportamento. Não entendi a pergunta.
A refatoração que ele quer fazer é semelhante a esta aqui:
Replace Array with Object
Bom, no Eclipse 3.4 eu não vi uma refatoração pronta parecida com a que ele quer, mas não deixa de ser uma refatoração.
[quote=thingol]A refatoração que ele quer fazer é semelhante a esta aqui:
Replace Array with Object
Bom, no Eclipse 3.4 eu não vi uma refatoração pronta parecida com a que ele quer, mas não deixa de ser uma refatoração.
[/quote]
Sim, perfeito, mas onde está a dúvida? Foi como perguntar “quanto que é 2+2=4?”! :?
Ele quer saber se existe alguma coisa pronta (NetBeans, Eclipse, IntelliJ etc. ) que já faça o serviço sujo para ele. É questão de ver na sua ferramenta preferida se isso existe pronto - o nome certo eu não sei; só sei que não há pronto no Eclipse.
Se estiver usando o NetBeans, talvez seja possível usar o Jackpot: http://jackpot.netbeans.org/index.html e criar uma regra especial de refactoring que faça isso.
Acho que o IntelliJ IDEA tem algo também parecido com o Jackpot.
O que quero saber é a seqüencia de passos para fazer esta refatoração. Como esta não é uma refatoração básica, deve envolver vários refatorações básicas, passo a passo. Uma refatoração pode envolver várias outros, por exemplo Extrair Classe usa Mover Método e Mover Campo.
Vi a refatoração que o thingol recomendou e era isto mesmo que eu estava procurando. Obrigado thingol.
Agradeço a todos que responderam, pelo auxílio.
Valeu!