我在RAD 7.5工作。我正在将一个包从一个Web项目导入到另一个Web项目中。我实例化该类并尝试使用其中一个方法,但是我得到一个构建错误,该方法未定义。该方法是公开的。除此之外,所有其他方法都有效。我正在导入的项目正确构建。我已经尝试删除这两个项目,再次从版本控制中抓取它们,然后重建它们。究竟是什么问题或者我可以在日食中检查什么(RAD 7.5)?
其他信息:
被调用的方法不是静态的。它是公共的,并且是从非静态的,受保护的方法中调用的。
代码段
我正在导入的课程:
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
}
}
答案 0 :(得分:1)
该类可以在同一个包中声明两次。因此,只加载第一个类,第二个类有你缺少的方法。
多么糟糕,你隐藏了一个方法:D
答案 1 :(得分:1)
我遇到了同样的问题,清理项目就可以解决问题了:)
答案 2 :(得分:0)
此Eclipse插件Classpath Helper可以显示已阻止的类:http://classpathhelper.sourceforge.net/
当你在不同的jar中有相同的类时,就会发生阻塞类。
答案 3 :(得分:0)
我有同样的问题。 Eclipse正在从相同的两个jar中获取相同的代码,即使它们是在两个单独的工作区中声明的。我正在使用项目 - 工作空间和项目 - workspace_new。
我删除了其他工作区并完成了一个干净的项目,但最初没有用。我有多个位置,相同的罐子。我实际上不得不关闭我的笔记本电脑以清除一切,因为关闭并重新启动eclipse无法修复它。然而,在我这样做之后,一切都解决了,编译错误就消失了。 然后我添加了工作区,我已经移除了,eclipse能够保持干净。
答案 4 :(得分:0)
您的类路径中有一个重复的类。在我的例子中,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来解决问题。希望这能让您了解如何修复方法未定义的错误。
答案 5 :(得分:0)
我也遇到过这个问题。在我的情况下,我在实际创建函数之前编写了对函数的调用,因此最初错误是预期的。但是在创建函数之后,错误仍然存在。我似乎eclipse缓存了选项卡中的错误,并且在选项卡之间切换时没有重新检查错误。关闭并重新打开选项卡为我修复了它。
答案 6 :(得分:0)
可能是你的源代码中的类和同名的类,但在jar中有较旧且没有该方法的类。你看到jar类。
答案 7 :(得分:0)
我有同样的问题。关闭并打开标签是不够的。不得不重启eclipse。