在研究这个问题的过程中,我遇到了很多帖子,这些帖子都出现了与本文标题类似的错误。这个问题的不同之处在于,该错误仅在我尝试将String传递给我正在开发的插件类的函数时出现。
我确实找到了一篇RAP:如何访问 ViewPart中的对象,这可能暗示了我的问题。
虽然我正在运行 Eclipse 3.6.1,但我认为这个问题是关于一般 Java 的。我的主要问题是我在一个 Eclipse 项目中有一个类(A 类),它在 Eclipse 插件项目中使用了另一个类(B 类)。A 不能调用需要String作为参数之一的 B 类的任何函数。我生成了一个使用 B 类的虚拟类 C(以及一个虚拟 Java 项目),但我仍然遇到同样的问题。让我详细说明一些。
我在 Eclipse 中有两个项目。其中之一是一个 Eclipse 插件项目,它包含一个本质上是绘图仪并扩展org.eclipse.ui.part.ViewPart的类。我正在从另一个非插件项目中实例化这个绘图仪类,该项目不能从绘图仪类中调用任何期望字符串作为参数之一的成员函数。
例如,以下代码片段:
Plotter myPlotter = new Plotter();
myPlotter.plot();
从我的非插件项目运行时正常工作。但是,如果我修改plot以期望一个String(例如,对于一个标签),或者甚至创建一个打印String的新函数:
Plotter myPlotter = new Plotter();
String theString = "I'm the String";
myPlotter.plot(theString);
myPlotter.printMe(theString);
Eclipse 在printMe下给了我红色下划线,并且绘图指示错误。当我将鼠标悬停在printMe上时,出现错误: 无法解析类型 org.eclipse.ui.part.ViewPart。它是从所需的 .class 文件中间接引用的
为了更好地理解这个问题,我在插件项目中构建了另外两个类来测试这个问题,一个超类是java.lang.Object,另一个超类是org.eclipse.ui.part.ViewPart。我可以从基于Object的类中调用带有String参数的函数,但我不能从基于ViewPart的类中调用带有 String 作为参数的函数。所以它与ViewPart 有关(我可以深入到后续的超类,如果该类继承自EventManager仍然存在问题)。只是为了好玩,我尝试更改类以扩展Vector我的问题消失了。在我看来,问题与EventManager和/或ViewPart 有关。
任何见解将不胜感激。