Eclipse告诉我一个方法在明确实际定义时是未定义的

我在RAD 7.5工作。 我正在将一个包从一个Web项目导入到另一个Web项目中。 我实例化该类并尝试使用其中一个方法,但是我得到一个构建错误,该方法未定义。 该方法是公开的。 除此之外,所有其他方法都有效。 我正在导入的项目是正确构建的。 我已经尝试删除这两个项目,再次从版本控制中抓取它们,然后重建它们。 究竟是什么问题或者我可以在日食中检查什么(RAD 7.5)?

附加信息:

被调用的方法不是静态的。 它是公共的,并且是从非静态的,受保护的方法调用的。

代码片段

我正在import的类别:

package com.state; public TelcoVariableTracker() { super(); } public boolean isMedicalFlag() { return isMedicalFlag; } 

具有构建错误的类:

 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 } } 

该类可以在同一个包中声明两次。 因此,只加载第一个类,第二个类有您缺少的方法。

多么糟糕,你隐瞒了自己的方法:D

我有同样的问题,清理项目做了诀窍:)

这个Eclipse插件Classpath Helper可以显示被阻止的类: http : //classpathhelper.sourceforge.net/

当您在不同的jar中具有相同的类时,会发生阻塞的类。

我有同样的问题。 Eclipse正在从相同的两个jar中获取相同的代码,即使它们是在两个单独的工作区中声明的。 我正在使用项目 – 工作空间和项目 – workspace_new。

我删除了其他工作区并完成了一个干净的项目,但最初没有用。 我有多个位置,相同的jar子。 我实际上不得不关闭我的笔记本电脑以清除所有内容,因为关闭并重新启动eclipse无法修复它。 然而,在我这样做之后,一切都解决了,编译错误就消失了。 然后我添加了工作区,我已经删除了,eclipse能够保持清洁。

您的类路径中有一个重复的类。 在我的例子中, Schema.getLogicalType()给出了一个方法未定义的错误,但其他Schema方法工作正常,并将显示在Eclipse辅助中。 我突出显示了getLogicalType并按下F3并链接了源。 这个方法确实存在。 我打开.classpath时找到了修复程序。 源链接到不同的jar文件。 它与phoenix-4.7.0-HBase-1.1-client.jar相关联,并且里面有一个较旧的org.apache.avro.Schema包。 phoenix.jar与我的avro-1.8.1.jar冲突。 所以我只是从类路径中删除了phoenix.jar来解决问题。 希望这能让您了解如何修复方法未定义的错误。

我也有这个问题。 在我的情况下,我在实际创建函数之前编写了对函数的调用,因此最初错误是预期的。 但是在创建函数之后,错误仍然存​​在。 我似乎eclipse缓存了选项卡中的错误,并且在选项卡之间切换时没有重新检查错误。 关闭并重新打开选项卡为我修复了它。

可能是你的源代码中的类和同名的类,但在jar中有较旧且没有该方法的类。 你看到jar类。

我遇到过同样的问题。 关闭并打开标签是不够的。 不得不重启eclipse。