'Deve substituir um método da superclasse' Erros depois de importar um projeto em Eclipse
-
16-09-2019 - |
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?
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:
- Escolha um projeto, clique direito, Propriedades
- Escolha um compilador Java e marque a caixa de seleção "Ativar configurações específicas do projeto"
- Agora faça nível de conformidade do compilador para 1,6
- 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)