Eclipse me dit d'une méthode n'est pas définie clairement est en fait défini
Je travaille dans RAD 7.5. Je suis de l'importation d'un package à partir d'un projet web dans une autre. J'instancie la classe et essayer un de sa méthode, mais j'ai une erreur de compilation que la méthode n'est pas défini. La méthode est publique. Toutes les autres méthodes de travail à l'exception de celui-ci. Le projet dont je suis l'importation est construit correctement. J'ai essayé de supprimer les deux projets, l'accaparement du contrôle de version de nouveau, et de les reconstruire. Ce qui sur terre peut-être le problème ou quoi d'autre puis-je vérifier dans eclipse (RAD 7.5)?
Informations supplémentaires:
De la méthode appelée est pas statique. Il est public et d'être appelé à partir d'un pas statique, protégé, méthode.
Des extraits de Code
Classe je suis d'importation: l'
package com.state;
public TelcoVariableTracker() {
super();
}
public boolean isMedicalFlag() {
return isMedicalFlag;
}
Classe avec l'erreur de génération:
import com.state.TelcoVariableTracker;
protected method() {
TelcoVariableTracker phoneInfo = HttpSessionUtils.getTelcoVariableTracker(request);
if (phoneInfo.isMedicalFlag() { //Build error: The method isMedicalFlag() is undefined for the type TelcoVariableTracker
//Do things
}
}
- Pouvez-vous fournir le code snippits? Il pourrait être quelque chose de subtil dans la façon dont vous appelez la méthode ou la comme.
- Peut-être que vous essayez d'appeler une méthode statique à partir d'une non-méthode statique? Post code.
- Peut-être que le fichier est dans un dossier différent (paquet), et ce dossier n'est pas sur votre classpath?
- Je suis certain que vous avez la classe dupliqué quelque part. Il y a probablement un vieux pot qui traînent. M'est arrivé une fois.
- Donc, je vois qu'il y a, en effet, est un doublon de classe, sans cette méthode dans un autre projet dans mon espace de travail, cependant le nom du package est complètement différent. Pourquoi mon projet l'utilisation de cette classe, si je suis à l'importation d'un package différent à partir d'un autre projet?
- Ce plugin eclipse pourrait être en mesure de vous aider, il peut montrer un tout bloqué (occulté) des classes. classpathhelper.sourceforge.net
- vous pouvez également mettre fin à votre déclaration si avec un autre ).
- Désolé à ce sujet, si l'instruction est bien dans le code, j'ai foiré que jusqu'ici d'essayer de le formater. Eh bien, je souhaite que je peux dire que j'ai essayé quelques-uns de vos plugins et cela a fonctionné, mais je n'ai pas eu la chance de le faire. Un couple reconstruit et le problème a disparu. Cela m'a aidé à penser à ce qui pourrait être mal, donc je vais donner la réponse.
Vous devez vous connecter pour publier un commentaire.
La classe peut être déclarée deux fois dans le même package. Par conséquent, seule la première classe est chargée, et la deuxième classe a la disparition de votre méthode.
Quel gâchis, de vous cacher une méthode de vous-même 😀
J'ai eu le même problème, le Nettoyage, le projet a fait l'affaire 🙂
Ce plugin Eclipse Chemin De Classe Helper peut montrer bloqué classes: http://classpathhelper.sourceforge.net/
Bloqué classes se produire lorsque vous avez identiques classes dans différents jar.
J'ai eu ce même problème. Eclipse a été ramasser le même code à partir des deux mêmes pots, même s'ils ont été déclarés en deux espaces de travail distincts. J'ai été à l'aide de projets - espace de travail et de projets - workspace_new.
J'ai supprimé l'autre de l'espace de travail et fait un nettoyage de projet, mais en vain, au premier abord. J'ai eu à plusieurs endroits identiques, les pots ont été. En fait j'ai eu à arrêter mon ordinateur portable vers le bas pour effacer tout comme la fermeture et le redémarrage d'eclipse ne pas le fixer. Après je n'ai que cependant, tout résolu et les erreurs de compilation s'en alla.
Ensuite, j'ai ajouté l'espace de travail de retour dans j'avais enlevé et eclipse a été en mesure de garder les choses propres.
Vous avez un doublon de classe dans votre classpath. Dans mon cas,
Schema.getLogicalType()
a donné une méthode non défini erreur, mais les autresSchema
méthodes fonctionnent très bien et se manifestent dans Eclipse aider. J'ai mis en évidencegetLogicalType
et appuyé sur F3 et lié à la source. Bien sûr la méthode existé. J'ai trouvé la solution quand j'ai ouvert le.classpath
. La source était lié à un autre fichier jar. Il a obtenu liée àphoenix-4.7.0-HBase-1.1-client.jar
et il avait un vieuxorg.apache.avro.Schema
paquet à l'intérieur. L'phoenix.jar en conflit avec monavro-1.8.1.jar
. Donc j'ai juste enlevé l'phoenix.jar depuis le classpath pour résoudre le problème. Espérons que cela vous donne une idée sur comment résoudre une méthode non défini erreur.J'ai aussi eu ce problème. Dans mon cas, j'avais écrit à l'appel à la fonction avant la création de la fonction si au départ l'erreur a été prévu. Cependant, une fois que la fonction a été créé l'erreur est resté. Je semble eclipse en cache l'erreur dans l'onglet et n'ai pas revérifier l'erreur lors de la commutation entre les onglets. La fermeture et la réouverture de l'onglet fixe pour moi.
Il pourrait être que vous avez la classe dans votre code source et de la classe du même nom, mais les plus âgés et sans cette méthode, dans le bocal. Et vous voyez le pot de classe.
J'ai eu le même problème. Ouverture et fermeture de l'onglet n'était pas assez. Dû redémarrer eclipse.