Pergunta

Meu projeto atual tem a convenção de codificação de que variáveis ​​de instância nunca são referidas com this.prefixo e que os parâmetros nunca devem ocultar variáveis ​​de instância.

Isso resulta em setters que se parecem com:

public void setFoo(final Foo aFoo)
{
  foo = aFoo;
}

Infelizmente, o Eclipse não gerará isso para mim por padrão.Descobri que no estilo de código posso chegar perto dele adicionando a à lista de prefixos de parâmetros, no entanto, só quero que ele se aplique a métodos definidos e gostaria de adicionar a tag final lá também.

Existe uma maneira de conseguir isso usando modelos?Alguma outra configuração?

Foi útil?

Solução

Acho que atualmente a única maneira de aplicar prefixos de parâmetro apenas para métodos setter é escrever um novo modelo para métodos setter, mas esse modelo não seria usado pelo gerador de acessador.Você pode ver uma lista de modelos existentes em Janela->Preferências->Java->editor->Modelos, Veja isso pergunta para obter algumas dicas sobre como criar um modelo.

Você pode modificar as configurações do Eclipse para especificar prefixos (e sufixos) para todos os tipos de variáveis, seja no espaço de trabalho ou no nível do projeto; isso se aplicará a todos os métodos, não apenas aos setters.Você pode usar o recurso "Limpar" para garantir que seus parâmetros sejam definitivos.

Para apaziguar sua convenção de código, você poderia especifique que todas as variáveis ​​de instância sejam prefixadas, dessa forma seus parâmetros não substituirão as variáveis ​​de instância, mas você pode não querer fazer isso.


Prefixos variáveis

Para modificar as configurações do espaço de trabalho, vá para Janela->Preferências->Java->Estilo de código, e edite a lista para usar seus prefixos/sufixos preferidos.

Para modificar as configurações do projeto, abra as propriedades do projeto (Alt. + Digitar) e selecione Estilo de código Java, selecione Habilitar configurações específicas do projeto, e edite as preferências como no espaço de trabalho.

Para habilitar um prefixo específico apenas para métodos setter, você teria que se aprofundar nos detalhes dos modelos de código para identificar e modificar o setter


Parâmetros finais

Para garantir que todos os parâmetros do método sejam finais, você pode modificar o processador de limpeza Java para adicionar final aos parâmetros.Sob Janela->Preferências->Java->Estilo de código->Limpar, você pode copiar ou editar o perfil ativo.Debaixo de Estilo de código guia, selecione Use o modificador 'final' sempre que possível no Declarações de variáveis seção e, em seguida, certifique-se Parâmetro é selecionado.A limpeza será aplicada quando você executar Fonte->Limpar

Para que os parâmetros finais sejam aplicados automaticamente em cada salvamento, você pode modificar as ações de salvamento, em Janela->**Preferências->Java->editor->Salvar ações, garantir Execute as ações selecionadas ao salvar estiver selecionada (isso também formatará seu código e organizará as importações, se desejar), selecione a caixa Ações Adicionais opção, e o Configurar, então sob Estilo de código, aplique o mesmo que acima

Outras dicas

Muito simples...

  1. No seu projeto, na pasta raiz do projeto, crie uma pasta chamada .settings (pode já estar lá).
  2. Nesta pasta, crie um arquivo de texto chamado org.eclipse.jdt.core.prefs
  3. Neste arquivo, inclua a seguinte linha:

org.eclipse.jdt.core.codeComplete.argumentPrefixes=a

É isso, pronto.Deveria simplesmente funcionar.Não consegui encontrar a documentação adequada para isso, mas aqui estão algumas outras opções que você pode definir:

org.eclipse.jdt.core.codeComplete.argumentPrefixes= org.eclipse.jdt.core.codeComplete.argumentSuffixes= org.eclipse.jdt.core.codeComplete.fieldPrefixes= org.eclipse.jdt.core.codeComplete.fieldSuffixes= org.eclipse.jdt.core.codeComplete.localPrefixes= org.eclipse.jdt.core.codeComplete.localSuffixes= org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=

Você pode usar Plug-in Eclipse de código rápido fazer isso com bastante facilidade.

Eclipse -> Preferências -> Java -> Estilo de código -> Modelos de código -> Código

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top