Gerar sets da instancia de um objeto automaticamente com eclipse

Bom dia.
Essa é para os experts do Eclipse.
Considere a classe mensagem abaixo:

public class Mensagen {

String de;
String para;
String cc;
String assunto;
String anexo;
String mensagem;
String servidorimap;

…gets e sets omitidos…

}

Minha duvida é em como usar o eclipse para eu não precisar escrever todos os sets ao instanciar o objeto, ou seja , queria instanciar o objeto

Mensagem m = new Mensagem();

e usar um atalho qualquer para o Eclipse gerar os sets para este objeto deixando apenas pra eu colocar os valores como

m.setDe(de);
m.setPara(para);
m.setCc(cc);
m.setAssunto(assunto);
m.setAnexo(anexo);
m.setMensagem(mensagem);
m.setPara(para);
m.setServidorimap(servidorimap);

Agradeço toda a ajuda, pois neste caso é simples de escrever mas estou trabalhando em uma aplicação que são dezenas de sets e isto esta me tomando muito tempo.

Não precisa ser expert. Basta usar o Google :wink:

Clique com o botão direito na classe, vá na opção “Source”, depois “Generate Getters and Setters…”. Na janela que abre, basta selecionar os atributo que se deseja criar os getters e setters, e depois clicar em “OK”. Você também pode selecionar se quer gerar somente os getters ou somente os setters, isso para cada atributo.

Fonte: https://stackoverflow.com/questions/7221691/is-there-a-way-to-automatically-generate-getters-and-setters-in-eclipse

Abraço.

1 curtida

Olá TerraSkill.
Sei usar o google e essa de gerar os métodos get e set eu conheço, aliás de uma forma até mais pratica e rápida da que você me passou ( use ALT+SHIFT+S+R ):wink::wink: mas não é essa a duvida,note que eu mencionei que gostaria de um atalho para gerar os sets ao instanciar o objeto e não ao criar a classe. ( infelizmente pois eu gostaria que fosse simples assim).

Vou explicar melhor:

Criei a classe ArcoIris por exemplo:

public class ArcoIris {

String cor1;
String cor2;
String cor3;
String cor4;
String cor5;
String cor6;
String cor7;
String cor8;

public String getCor1() {
return cor1;
}

public String getCor2() {
return cor2;
}

public String getCor3() {
return cor3;
}

public String getCor4() {
return cor4;
}

public String getCor5() {
return cor5;
}

public String getCor6() {
return cor6;
}

public String getCor7() {
return cor7;
}

public String getCor8() {
return cor8;
}

public void setCor1(String cor1) {
this.cor1 = cor1;
}

public void setCor2(String cor2) {
this.cor2 = cor2;
}

public void setCor3(String cor3) {
this.cor3 = cor3;
}

public void setCor4(String cor4) {
this.cor4 = cor4;
}

public void setCor5(String cor5) {
this.cor5 = cor5;
}

public void setCor6(String cor6) {
this.cor6 = cor6;
}

public void setCor7(String cor7) {
this.cor7 = cor7;
}

public void setCor8(String cor8) {
this.cor8 = cor8;
}

}

Agora suponhamos que vou instanciar a classe:

public class Main {

public static void main(String[] args) {

ArcoIris arcoiris = new ArcoIris();

// É este trecho abaixo que eu queria achar uma forma de gerar automaticamente,
// sem digitar arcoiris.setCor1(,arcoiris.setCor2( ... etc; deixando somente o valor das variaveis para setar.
arcoiris.setCor1(cor1);
arcoiris.setCor2(cor2);
arcoiris.setCor3(cor3);
arcoiris.setCor4(cor4);
arcoiris.setCor5(cor5);
arcoiris.setCor6(cor6);
arcoiris.setCor7(cor7);
arcoiris.setCor8(cor8);

}

}

Conseguiu compreender?
Já revirei fóruns e o próprio google mas não acho nada sobre o assunto…

Sua dúvida original não dava essa ideia. Mas enfim, seria um atalho ou plugin realmente útil.

Você pode copiar métodos da listagem de Type Hierarchy (atalho: f4) como sugerido aqui, mas infelizmente ele não coloca a instância como prefixo, então não é tão automatizado quanto poderia.

O IntelliJ tem um plugin para isso, talvez valha a pena dar uma olhada. Deve ser possível instalar no Android Studio, que é baseado no IntelliJ

PS: acho horríveis alguns dos atalhos do Eclipse (como esse), por isso coloquei o caminho mais longo.

Abraço.

Não estou respondendo diretamente a sua pergunta mas, se você tem vários casos onde precisa disso ( um construtor padrão e chamando todos os setters necessário em seguida), eu recomendaria você considerar criar construtores mais completos e evitar usar setters.

1 curtida