Existe uma maneira de gerar automaticamente getters e setters no Eclipse?

256

Estou trabalhando em um novo Androidprojeto ( Java) e criei um objeto com um grande número de variáveis. Como estou planejando adicionar getters e setters para todos eles, fiquei pensando: existe um atalho Eclipsepara gerar automaticamente os getters e setters em uma determinada classe?

Phil
fonte
1
Parece um stalker para mim ... Eu costumava fazer toda a programação Java sem um IDE, portanto, usar o Eclipse ainda é relativamente novo para mim.
28411 Phil
3
@krio - O mundo inteiro não usa o Eclipse para Java dev. Eu fiz a maior parte do meu trabalho no IntelliJ e me peguei fazendo muitas perguntas como essa quando comecei a trabalhar no Eclipse.
precisa saber é o seguinte
1
@Phil, vcsjones - muito verdadeiras as minhas desculpas, mas verificar isso, - google.com.au/... - Eu acho que stackoverflow diz que a pesquisa é importante
TeaCupApp
2
é a maneira mais rápida: ctrl + 3 ggas
dellasavia
1
@ Konstantin, que diz apenas para evitar usá-los na mesma classe, então não ligue this.getCount(), quando você puder apenas fazer referência this.mCount. Embora possa ser uma operação mais cara, é uma abordagem mais limpa fornecer acesso a variáveis ​​de outros objetos por meio de getters e setters.
Phil

Respostas:

357

Exiba o menu de contexto (ou seja, clique com o botão direito do mouse) na janela de código-fonte da classe desejada. Depois selecione o Sourcesubmenu; selecionar esse menu Generate Getters and Setters...fará com que uma janela do assistente apareça.

Source -> Generate Getters and Setters...

Selecione as variáveis ​​para as quais você deseja criar getters e setters e clique OK.

Hagai Cibulski
fonte
Há apenas 'Gerar comentário de elemento', sem getters e setters. Estou usando o Eclipse 4.4.0, plugin PDT instalado. Enquanto isso, isso pode ser usado - mikeangstadt.name/projects/getter-setter-gen .
XDG
Funciona muito bem no Eclipse Mars.2 Release (4.5.2). Obrigado.
precisa saber é o seguinte
Obrigado por me salvar cerca de um milhão de anos de tédio!
Jay Edwards
11
Você também pode acessar este submenu com o atalho de teclado SHIFT+ ALT+ Se, em seguida, abra as opções de Geração de getters e setters pressionando R.
Rosa
Engraçado como minha resposta aqui ficou tão popular, mas hoje em dia eu usava o Lombok , como observado por outros abaixo.
Hagai Cibulski
70

No Eclipse Juno, por padrão, ALT + SHIFT + S, R abre a caixa de diálogo getter / setter. Observe que você precisa pressionar todas as 4 teclas.

RoboAlex
fonte
5
Você pode deixar de fora a parte SHIFT e fazer ALT + S, R também.
21730 Jason Wheeler
2
Você não pode deixar de fora SHIFTem Eclipse Kepler
yellavon
Você pode deixar de fora o SHIFTEclipse Oxygen.
Jake Reece
Você não pode deixar de fora SHIFTno Eclipse 2018-12.
Neph 17/09/19
69

Right click -> Source -> Generate setters and getters

Mas para torná-lo ainda mais conveniente, eu sempre mapeio isso para ALT + SHIFT+ GdeWindows -> Preferences -> General -> Keys

Bozho
fonte
2
Muito útil! Eu uso o mesmo mapeamento de teclas.
Carlos Carlos del Pozo Muela
41

Todas as outras respostas são focadas apenas no nível do IDE; essas não são a maneira mais eficaz e elegante de gerar getters e setters. Se você possui dezenas de atributos, os métodos getters e setters relevantes tornarão seu código de classe muito detalhado.

A melhor maneira que eu já usei para gerar getters e setters automaticamente é usando anotações de lombok do projeto no seu projeto java , o lombok.jar irá gerar o método getter e o setter quando você compilar o código java.

Você se concentra apenas na definição e nomeação de atributos / variáveis ​​de classe, o lombok fará o resto. É fácil manter seu código.

Por exemplo, se você deseja adicionar os métodos getter e setter para a agevariável, basta adicionar duas anotações lombok:

@Getter @Setter 
public int age = 10;

Isso é igual ao código assim:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

Você pode encontrar mais detalhes sobre o lombok aqui: Projeto Lombok

dongpf
fonte
1
É isso aí! Muito obrigado! Na verdade, sua resposta deve estar no topo, já que o lombok é a única solução verdadeira para evitar a visualização de todo o código Java padrão que seria necessário gerar ou escrever. Obrigado!
Stefan Endrullis 4/03/16
2
Projeto Lombok (ou pelo menos a idéia) deve ser parte de Java 11. Eu uso Kotlin para classes Pojo apenas para escapar geração setter getter: /
Wolf359
31

Maneiras de gerar getters e setters -

1) Pressione Alt+ Shift+ e S, em seguida,R
2) Clique com o botão direito do mouse -> Origem -> Gerar Geradores e Setters
3) Vá para o menu Origem -> Gerar Geradores e Setters
4) Vá para o menu Windows -> Preferências -> Geral -> Teclas (Escrever Gerar Getters & Setters no campo de texto)
5) Clique no botão de erro do campo -> crie getters & setters ...
6) Pressione Ctrl+3 e escreva getters & setters no campo de texto e selecione a opção Gerar Getters & Setters

se o Mac OS pressionar Alt + cmd + S, selecione Getters & Setters

Deepak Gupta
fonte
2
Eu acho que 1 é um pouco mais fácil assim: 1) Pressione Alt + Shift + S, depois R
Paco Abato
1
Pressionar Ctrl-3 e diretamente depois digitar "getter" está ausente na lista. Muito mais fácil de lembrar do que atalhos específicos, pois isso funciona para todos os comandos, visualizações e assim por diante.
Bananeweizen
@ Bananeweizen - Thanks
Deepak Gupta
11

Clique com o botão direito-> gerar getters e setters faz o trabalho bem, mas se você deseja criar um atalho de teclado no eclipse no windows, é possível seguir as seguintes etapas:

  1. Vá para Janela> Preferências
  2. Vá para Geral> Chaves
  3. Lista de "Assistência Rápida - Criar getter / setter para campo"
  4. No campo de texto "Ligação" abaixo, mantenha pressionadas as teclas desejadas (no meu caso, eu uso ALT + SHIFT + G)
  5. Pressione Aplicar e Ok
  6. Agora, no seu editor Java, selecione o campo para o qual você deseja criar métodos getter / setter e pressione o atalho que você configurou na Etapa 4. Pressione ok nesta janela para criar os métodos.

Espero que isto ajude!

sufinawaz
fonte
9

Certo.

Use Gerar getters e setters no menu Source ou no menu de contexto em um campo ou tipo selecionado ou uma seleção de texto em um tipo para abrir a caixa de diálogo. A caixa de diálogo Gerar getters e setters mostra getters e setters para todos os campos do tipo selecionado. Os métodos são agrupados pelos campos do tipo.

Dê uma olhada na documentação de ajuda para obter mais informações.

vcsjones
fonte
8

Sim. Clique com o botão direito do mouse no código e você verá um menu; lá "Origem", "Gerar getters e setters" e ao lado dele você pode ver o atalho, que é Alt + Shift + S e R no meu sistema.

Da mesma forma, você pode navegar para outros submenus no menu principal. Ao digitar o atalho apropriado, você segue diretamente o submenu em vez do menu de contexto principal e pode escolher no menu ou digitar outra letra para escolher na lista.

Zds
fonte
8

No Mac OS , Alt+Cmd+Sselecione "... Getters and Setters"

Alexander Volkov
fonte
7

Eu prefiro criar o campo privado primeiro

private String field;

O Eclipse destacará automaticamente a variável, posicionando o cursor sobre sua nova variável, pressione Ctrl + 1. Ele fornecerá o menu para Criar getter e setter.

Pressiono Ctrl + 1 porque é um pouco mais inteligente sobre o que acho que você deseja a seguir.

David Chiew
fonte
5

Pressione Alt + Shift + S + R ... e, em seguida, selecione apenas todos os campos que você precisa para gerar Getters ou Setters ou ambos

Sagar Sawant
fonte
5
  • Para Todas as variáveis ALT + SHIFT + S Então R e para selecionar todas Pressione ALT + A

  • Para Variável única Aponte o cursor para a variável, pressione CTRL + 1 e vá para a segunda opção das sugestões

ScreenShot

Rohit Mewada
fonte
Obrigado, é isso que eu estava procurando.
Shams Nahid
4

Existe um jar de código aberto disponível, conhecido como Lombok , basta adicionar o jar e anotar seu POJO com @Getter & @Setter , que criará getters e setters automaticamente.

Além disso, podemos usar outros recursos como @ToString , @EqualsAndHashCode e outras coisas interessantes que removem o código de baunilha do seu aplicativo

rajadilipkolli
fonte
3

Eclipse> Origem> Gerar Getters e Setters

user2332195
fonte
3

** Em Eclipse Ide

para gerar setters e getters -> alt + shift + s + r, em seguida, Alt A e clique em ok;

para gerar apenas getters -> alt + shift + s + r, em seguida, pressione g e clique no botão ok;

para gerar apenas setters -> alt + shift + s + r, em seguida, pressione l e clique no botão ok; **

abhinav
fonte
2

Clique com o botão direito do mouse na propriedade para a qual você deseja gerar o getter e setter e escolha

Source -> Generate Getters and Setters...
Eduardo Dennis
fonte
2

1) Vá para Windows-> Preferências-> Geral-> Chaves

2) Selecione a opção command" Gerar getters e setters "

3) No Binding, pressione o atalho para gostar de usar (como Alt + Shift + G )

4) Clique em Aplicar e você está pronto para ir

Prateek Joshi
fonte
1
  1. Abra o arquivo de classe no Eclipse
  2. Clique duas vezes no nome da turma ou destaque-o
  3. Em seguida, navegue até Origem -> Inserir código
  4. Clique em Getter e Setter

Ele abre um pop-up para selecionar os campos para os quais os métodos getter / setter serão gerados. Selecione os campos e clique no botão "Gerar". insira a descrição da imagem aquiinsira a descrição da imagem aqui

Vallabha Vamaravelli
fonte
1

Use o Projeto Lombok ou melhor o Kotlin para seus Pojos.

(Além disso, para adicionar o Kotlin ao seu currículo;))

Este :

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

se tornaria o seguinte:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

Ou use as classes "dados" de Kotlin. Você acaba escrevendo ainda menos linhas de código.

Wolf359
fonte