Pergunta

A qualquer momento eu tenho que re-importar meus projetos em Eclipse (se eu reinstalado Eclipse, ou alterado o local dos projectos), quase todos dos meus métodos substituídos não são formatados corretamente, causando o erro :

O método deve substituir um método de superclasse

Pode ser importante mencionar isso é com projetos Android - por qualquer motivo, os valores dos argumentos método nem sempre são preenchidos, por isso tenho de preenchê-los manualmente mim. Por exemplo:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

será inicialmente povoada como esta:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

O estranho é, se eu remover o meu código, e têm Eclipse recriar automaticamente o método, ele usa os mesmos nomes de argumentos que eu já tinha, então eu realmente não sei onde está o problema, outro então auto-formatação o método para mim.

Isto torna-se uma dor ter que métodos recriar manualmente ALL minha substituídos por mão. Se alguém pode explicar por que isso acontece ou como corrigi-lo .. Eu ficaria muito feliz.

Talvez seja devido à forma como estou formatando os métodos, que são dentro de um argumento de outro método?

Foi útil?

Solução

Eclipse está inadimplente para Java 1.5 e você tem as classes que implementam métodos de interface (que em Java 1.6 pode ser anotada com @Override, mas em Java 1.5 só pode ser aplicada aos métodos de substituir um método da superclasse).

Vá para o seu projeto preferências / IDE e definir o nível compilador Java para 1,6 e também certificar-se você selecionar JRE 1.6 para executar o seu programa de Eclipse.

Outras dicas

Com Eclipse Galileo você vai para Eclipse -> item de menu Preferências, em seguida, selecione Java e Compiler no diálogo

.

Agora, ele ainda pode mostrar o nível de conformidade do compilador em 1,6, mas você ainda ver este problema. Então agora selecionar o link " configurar o Project Configurações específicas ... ", e lá você vai ver o projeto está definido para 1.5, agora mudar isso para 1.6. Você precisa fazer isso para todos os projetos afetados.

Esta interface do menu / diálogo bizantino é típico de design de interface pobre Eclipse.

Em caso de isto acontecer a qualquer pessoa que tentou tanto alphazero e método de Paulo e ainda não funcionou.

Para mim, eclipse de alguma forma 'cache' os erros de compilação mesmo depois de fazer um Projeto> Limpar ...

Tive de desmarcar Projeto> Construir Automaticamente, em seguida, fazer um Projeto> Limpar e construir novamente.

Além disso, quando em dúvida, tente reiniciar Eclipse . Isto pode corrigir um monte de, erros inexplicáveis ??difíceis.

Para resolver esse problema, vá para o seu propriedades do projeto -> compilador Java -> nível de conformidade Select compilador para 1.6-> Aplicar.

A resposta de Paul trabalhou para mim parcialmente. Eu ainda tinha um erro então. Então, além disso, eu também tinha que ir para Propriedades-> Aspectos do Projeto e não definir a versão Java 1,5-1,6.

Talvez isso ajuda.

Caras no meu caso nenhuma das soluções acima funcionou.

Eu tive que excluir os arquivos dentro do espaço de trabalho do projeto:

  • .project
  • .classpath

E a pasta:

  • .settings

Então eu copiei os de um projeto similar que estava trabalhando antes. Este conseguiu corrigir o meu projeto quebrado.

É claro que não usam este método antes de tentar as alternativas anteriores!.

Se nada do acima ajuda, certifique-se de ter uma adequada " ambiente de execução " selecionado e não um "Alternate JRE".

Para ser encontrado em:

Project -> Caminho de Construção -> Bibliotecas

Selecione o JRE System Library e clique Edit....

Se "Alternate JRE ..." é selecionada, mude para um "Execution Environment" encaixe como JavaSE-1.8 (jre1.8.0_60). Não faço ideia porquê, mas isso vai resolvê-lo.

Esta é a minha segunda vez encontrar esse problema. primeira vez de acordo com a recomendação do alphazero funcionou. mas no segundo set vez que a 1.6 que não funcionam apenas como 'Cache' esse erro depois de limpa e reconstruir.

Tente desligar 'criar automaticamente', como disse Rollin_s -> erro ainda aqui

Então eu removi o projeto problema (já ajustado para 1,6) a partir de Package Explorer e importá-lo novamente ->-lo começar uma reconstrução e nenhum erro desta vez

Espero que isso ajuda alguém

A fixação deve substituir um erro de super método de classe não é difícil, você só precisa mudar versão de código Java para 1,6 por causa de Java 1.6 @Override anotação pode ser usado junto com o método de interface. De modo a versão fonte mudança para 1,6 seguir os passos abaixo:

  1. Escolha um projeto, clique direito, Propriedades
  2. Escolha um compilador Java e marque a caixa de seleção "Ativar configurações específicas do projeto"
  3. Agora faça nível de conformidade do compilador para 1,6
  4. Aplicar alterações

No meu caso este problema aconteceu quando eu importou um projeto Maven em Eclipse. Para resolver isso, eu adicionei o seguinte em pom.xml:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Em seguida, no menu de contexto do projeto, vá para "Maven -> Update Project ..."., E pressione OK

É isso. Espero que isso ajude.

No meu caso, nenhuma das soluções anteriores obras. Eu tenho que fazer o checkout meu código fonte para outra pasta. De eclipse selecione Arquivo> Workspaces switch> Outro ... e código em seguida, importar para as novas áreas de trabalho. ele funciona depois disso.

Isso acontece quando seu projeto maven usa nível Compiler Compliance diferente e Eclipse IDE usa o nível Compiler Compliance diferente. Para corrigir isso, precisamos alterar o nível Compiler Compliance do projeto Maven aos usos IDE nível.

1) para ver Java Compiler Compliance usos nível em Eclipse IDE

*) Janela -> Preferências -> Compiler -> Compiler Conformidade nível: 1,8 (ou 1,7, 1,6 ,, ect)

2) Nível de alterar o compilador Java Compliance do projeto Maven

*) Ir para o "Projeto" -> "Propriedades" -> Selecionar "Java Compiler" -> Alterar o nível Compiler Compliance: 1.8 (ou 1.7, 1.6 ,, ect)

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