Sempre que precisar reimportar meus projetos para o Eclipse (se eu reinstalar o Eclipse ou alterar a localização dos projetos), quase todos os meus métodos substituídos não serão formatados corretamente, causando o erro:
O método deve substituir um método de superclasse
Pode ser digno de nota mencionar que isso ocorre nos projetos Android por qualquer motivo, os valores dos argumentos do método nem sempre são preenchidos, portanto, eu mesmo preciso preenchê-los manualmente. Por exemplo:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct names
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
}
});
será inicialmente preenchido assim:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically provided
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
}
});
O estranho é que, se eu remover meu código e o Eclipse recriar automaticamente o método, ele usará os mesmos nomes de argumento que eu já tinha, então não sei realmente onde está o problema, senão ele formata automaticamente o método para mim.
Isso se torna bastante trabalhoso, tendo que recriar manualmente TODOS os meus métodos substituídos à mão. Se alguém puder explicar por que isso acontece ou como corrigi-lo. Eu ficaria muito feliz.
Talvez seja devido à maneira como estou formatando os métodos, que estão dentro de um argumento de outro método?
fonte
Respostas:
O Eclipse está padronizado para Java 1.5 e você tem classes implementando métodos de interface (nos quais o Java 1.6 pode ser anotado
@Override
, mas no Java 1.5 só pode ser aplicado a métodos que substituem um método de superclasse).Vá para as preferências do seu projeto / IDE e defina o nível do compilador Java como 1.6 e também certifique-se de selecionar o JRE 1.6 para executar seu programa no Eclipse.
fonte
Com o Eclipse Galileo, você acessa o item de menu Eclipse -> Preferences e, em seguida, seleciona Java e Compiler na caixa de diálogo.
Agora, ele ainda pode mostrar o nível de conformidade do compilador em 1.6, mas você ainda vê esse problema. Então agora selecione o link " Definir configurações específicas do projeto ... " e verá que o projeto está definido como 1,5, agora mude para 1,6. Você precisará fazer isso para todos os projetos afetados.
Essa interface de menu / diálogo bizantina é típica do mau design da interface do Eclipse.
fonte
Caso isso aconteça com mais alguém que tentou o alphazero e o método de Paul e ainda não funcionou.
Para mim, o eclipse de alguma forma 'armazenou em cache' os erros de compilação, mesmo depois de executar um Projeto> Limpar ...
Eu tive que desmarcar Projeto> Compilar automaticamente, executar um Projeto> Limpar e compilar novamente.
Além disso, em caso de dúvida, tente reiniciar o Eclipse . Isso pode corrigir muitos erros estranhos e inexplicáveis.
fonte
Para resolver esse problema, acesse Propriedades do projeto -> compilador Java -> selecione o nível de conformidade do compilador para 1.6-> Aplicar.
fonte
A resposta de Paul funcionou para mim parcialmente. Eu ainda tinha um erro então. Então, além disso, eu também tive que ir para Propriedades-> Facetas do projeto e definir a versão do Java de 1.5 para 1.6.
Talvez isso ajude.
fonte
Pessoal, no meu caso, nenhuma das soluções acima funcionou.
Eu tive que excluir os arquivos no espaço de trabalho do projeto:
E a pasta:
Depois copiei os de um projeto semelhante que estava funcionando antes. Isso conseguiu consertar meu projeto quebrado.
Obviamente, não use esse método antes de tentar as alternativas anteriores !.
fonte
Se nada do exposto ajudar, verifique se você selecionou um " Ambiente de execução " adequado , e não um "JRE alternativo".
Para ser encontrado em:
Selecione
JRE System Library
e cliqueEdit...
.Se "JRE alternativo ..." estiver selecionado, altere-o para um "Ambiente de execução" apropriado
JavaSE-1.8 (jre1.8.0_60)
. Não faço ideia do porquê, mas isso vai resolver.fonte
Esta é a segunda vez que encontro esse problema. primeira vez, de acordo com a recomendação do alphazero, funcionou. mas na segunda vez que defino para 1.6, não funciona exatamente como 'CACHE' esse erro após a limpeza e a reconstrução.
Tente desativar 'Build Automaticamente', como Rollin_s disse -> erro ainda aqui!
Então, removi o projeto do problema (já definido como 1.6) do Package Explorer e importe-o novamente -> inicie uma reconstrução e sem erros desta vez
Espero que isso ajude alguém
fonte
A correção deve substituir um erro de método de superclasse não é difícil. Você só precisa alterar a versão de origem Java para 1.6, pois a anotação Java 1.6 @Override pode ser usada junto com o método de interface. Para alterar a versão de origem para 1.6, siga as etapas abaixo:
fonte
No meu caso, esse problema ocorreu quando importei um projeto Maven para o Eclipse. Para resolver isso, adicionei o seguinte em
pom.xml
:Em seguida, no menu de contexto do projeto, vá para "Maven -> Atualizar projeto ..." e pressione OK.
É isso aí. Espero que isto ajude.
fonte
No meu caso, nenhuma das soluções acima funciona. Eu tenho que fazer checkout do meu código fonte para outra pasta. No eclipse, selecione Arquivo> Alternar espaços de trabalho> Outro ... e importe o código para os novos espaços de trabalho. funciona depois disso.
fonte
Isso acontece quando o projeto maven usa diferentes níveis de conformidade do compilador e o Eclipse IDE usa diferentes níveis de conformidade do compilador. Para corrigir isso, precisamos alterar o nível de conformidade do compilador do projeto Maven para o nível que o IDE usa.
1) Para ver os usos do nível de conformidade do compilador Java no Eclipse IDE
*) Janela -> Preferências -> Compilador -> Nível de conformidade do compilador: 1.8 (ou 1.7, 1.6, ect)
2) Para alterar o nível de conformidade do compilador Java do projeto Maven
*) Vá para "Projeto" -> "Propriedades" -> selecione "Java Compiler" -> Altere o nível de conformidade do compilador: 1.8 (ou 1.7, 1.6 ,, ect)
fonte