- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在研究这个问题时,我遇到了很多帖子,这些帖子都出现了与本文标题类似的错误。这个问题的不同之处在于,只有当我尝试将 String 传递给我正在开发的插件类的函数时,错误才会出现。
我确实找到了一篇文章RAP: How to access Object in ViewPart这可能暗示了我的问题。
虽然我运行的是 Eclipse 3.6.1,但我认为这个问题是关于一般 Java 的。我的主要问题是,我在一个 Eclipse 项目中有一个类(类 A),它在 Eclipse 插件项目中使用另一个类(类 B)。 A 无法调用 B 类的任何需要 String 作为参数之一的函数。我生成了一个使用类 B 的虚拟类 C(以及一个虚拟 Java 项目),但我仍然遇到相同的问题。让我详细说明一下。
我在 Eclipse 中有两个项目。其中之一是一个 Eclipse 插件项目,它包含一个本质上是绘图仪并扩展org.eclipse.ui.part.ViewPart的类。我正在从另一个非插件项目实例化此绘图仪类,该项目无法调用绘图仪类中需要 String 作为参数之一的任何成员函数。
例如下面的代码片段:
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 和 plot 下显示红色下划线,指示错误。当我将鼠标悬停在 printMe 上时,出现错误:无法解析类型 org.eclipse.ui.part.ViewPart。它是从所需的.class文件间接引用的
为了更好地理解这个问题,我在插件项目中构建了另外两个类来测试这个问题,一个类的父类(super class)是 java.lang.Object,另一个类的父类(super class)是 org.eclipse.ui.part.ViewPart。我可以从基于 Object 的类中调用带有 String 参数的函数,但无法从基于 ViewPart 的类中调用带有 String 作为参数的函数。所以它与 ViewPart 有关(我可以深入到后续的父类(super class),但如果该类继承自 EventManager,仍然存在问题)。只是为了好玩,我尝试更改类,使其扩展 Vector 并且我的问题消失了。在我看来,问题与 EventManager 和/或 ViewPart 有关。
任何见解将不胜感激。
最佳答案
这不是运行时问题,因此如何运行程序并不重要。您会遇到编译错误。
Chris Gerken 是对的,但您没有尝试他的解决方案,所以我将尝试解释为什么他是对的。
当 Java 编译器查看您的代码时,它需要知道您调用的类的定义。有时它还需要知道所有继承成员的定义(例如,在解析重载方法调用时)。你好像遇到了那个案子。现在,如果您的类路径仅包含您的 plotter 项目,而不包含定义 ViewPart
的 jar,则它将失败并显示此消息。
您可以通过在类路径上添加正确的 jar 来解决这个问题(您需要稍微修改一下以找出它是在哪个 jar 中定义的)。否则,您可以导出绘图仪类路径上的所有库(项目属性/Java 构建路径、顺序和导出选项卡 - 选择全部)。
Chris 的解决方案通过创建一个由绘图仪项目托管的新界面(不扩展任何内容)来解决这个问题。使用该接口(interface)没有依赖项(但您需要能够创建一个依赖项,因此需要创建工厂)。关于java - 更改函数原型(prototype)会生成 "cannot be resolved. It is indirectly referenced"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396494/
以下代码,我使用 chrome 浏览器控制台进行了检查: function A(){ this.a='a' } 这是一个构造函数。我已经将一个属性 b 赋给了 A 的原型(prototype)。
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 5年前关闭。 Improve this
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 3年前关闭。 Improve this
我已经开始阅读 The Pragmatic Programmer,我很喜欢并学习堆形式,但我很难理解示踪子弹和原型(prototype)之间的区别。跟踪项目符号是否像拥有应用程序的所有 View 但尚
尽管阅读了 StackOverflow 上的大多数文章,但我现在实际上对原型(prototype)非常困惑。 function Foo() { } Foo.prototype.speak = func
我正在阅读以下代码,并开始想知道 Rectangle.prototype = Object.create(Shape.prototype) 和 Rectangle.prototype = Shape.
我想知道它们之间的区别: childObj.prototype = Object.create(parentObj.prototype) 和 childObj.prototype = parentOb
这个问题在这里已经有了答案: Why wouldn't I use Child.prototype = Parent.Prototype rather than Child.prototype =
在 node.js 中导出原型(prototype)的首选方法是什么?您可以采用两种方法: 导出原型(prototype)本身 function A () { } module.exports = A
我正在学习 JavaScript,发现了两种分配原型(prototype)的方法。 第一个是A.prototype = B.prototype,第二个是A.prototype = new B() 例如
在一些构造函数的定义之后,例如 child ,我见过以下两种形式: Child.prototype = Parent.prototype; 或 Child.prototype = new Parent
我正在阅读一本关于 OOP javascript 的书,但被其中一个示例卡住了。 在示例代码的第一个版本中,Shape 的一个新实例构造函数被创建并且 toString方法被调用。 toString方
这个问题在这里已经有了答案: What should I connect to the child prototype property in JavaScript (2 个答案) 关闭 8 年前。
在进行原型(prototype)设计时,您在多大程度上放弃了最佳实践来支持代码和修复黑客攻击?当然,代码并不打算在完整的生产环境中保留。 补充:我正在研究一个用 Python 制作的相当大的半工作原型
我正在尝试使用 Prototype 更新隐藏表单字段的值。表单域: 我正在尝试使用原型(prototype)更新值: var additionalVal = ',2'; var itemId = $
我正在阅读How to Make a Javascript Library我发现了作者所说的一个观点: function _() { //Some obects and var
我想用一个新函数扩展“Number”类型,因此我必须定义一个原型(prototype)。当我想到这一点时,我得到了一堆问题: Number 是否既继承了 Object.prototype 又继承了 F
这里好像有区别... 假设我们有 function MyConstructor() {} MyConstructor 的[[Prototype]] 是Function.prototype,不是 MyC
有人建议 Derived.prototype = Object.create(Base.prototype); 优于 Derived.prototype = new Base(); (如 this S
我是一名优秀的程序员,十分优秀!