1

我在 RAD 7.5 中工作。我正在将一个包从一个 Web 项目导入另一个。我实例化了这个类并尝试使用它的一种方法,但是我得到一个构建错误,该方法是未定义的。方法是公开的。除此方法外,所有其他方法均有效。我从中导入的项目已正确构建。我尝试删除这两个项目,再次从版本控制中获取它们,然后重新构建它们。到底什么可能是问题,或者我还能在 eclipse (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
    }
}
4

8 回答 8

2

我有同样的问题,清理项目成功了:)

于 2016-08-12T18:00:21.037 回答
1

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

真是一团糟,你对自己隐藏了一个方法:D

于 2012-07-26T15:02:34.230 回答
1

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

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

于 2012-07-26T15:48:30.137 回答
1

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

于 2016-09-05T15:43:52.997 回答
0

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

我删除了另一个工作区并做了一个干净的项目,但起初无济于事。我有多个相同的罐子所在的位置。实际上,我不得不关闭我的笔记本电脑以清除所有内容,因为关闭并重新启动 Eclipse 并不能解决它。然而,在我这样做之后,一切都解决了,编译错误也消失了。然后我将工作区重新添加到我已删除的位置,并且 eclipse 能够保持清洁。

于 2014-03-17T16:39:40.057 回答
0

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

于 2016-10-14T11:00:06.863 回答
0

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

于 2018-05-08T05:59:21.777 回答
0

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

于 2017-10-27T11:20:49.777 回答