1

我有一个在 WebSphere Integration Developer 7.0 中工作的项目,我试图引用我刚刚从不同包中编写的公共方法。我的新方法所在的类包含一个导入语句。

当我创建我的类的一个实例并尝试调用我的新方法时,我得到一个标准的“方法'x'未定义类型'y'”编译器错误,表明我的新方法未被识别。

对我来说真正特别的是,当我按 F3 打开类实例的声明时,我被带到 .class 文件而不是 .java 文件中的类声明。我尝试从我的类实例中调用其他几个非静态方法,当我打开它们的声明时,这些方法被识别并带我进入 .class 文件。我在同一目录中有此类的 .class 和 .java 文件。

我已经清理并重建了项目,看看是否会有任何影响,但仍然看到相同的行为。

所以我的问题是,为什么我的 IDE 会在 .class 文件而不是 .java 文件中打开类和方法声明?我以前从未见过 - 在这种情况下,这可能是 WID 中的预期行为,还是这表明我的环境有问题?

4

1 回答 1

2

Why the IDE opens the .class file

因为,这就是 IDE 找到的build path.

这是非常常见的行为。

例如,假设我们有 2 个项目 - projectF和 project B

Project `F` - front end
Project `B` - back end

现在,F依赖于B它的编译但B可以独立编译。

因此,为了构建F,我们首先构建B然后复制作为构建路径中构建的一部分生成的工件,F或者如果我们不想进行复制/粘贴,我们只需使F构建路径指向工件由B's build 生成。

现在,我们可以构建F. 在这里,F实际上指向的是一堆类文件而不是源文件。

而且,现在如果我们尝试访问Bfrom的任何文件F- IDE 将智能地.class为我们打开文件。

于 2014-10-02T16:16:37.643 回答