这是设计问题还是Eclipse的问题还是Java的漏洞?

时间:2011-07-27 10:04:26

标签: java eclipse class-design

让我们在eclipse的工作空间中定义以下类:

public abstract class A {
   public void foo() {
      System.out.println("Hi.. this is foo()");
   }
}

public interface I {
   void foo();
}

public class B extends A implements I {
   public void bark() {
      System.out.println("Hi.. this is bark()");
   }
}

public class C {
   public void woo() {
      I i = new B();
      i.foo();
   }
}

现在的问题是eclipse在搜索

时没有显示A.foo()的任何引用
  • 参考文献 - >项目或
  • 参考资料 - 层次结构

我认为这是一个设计问题。你觉得怎么样?

2 个答案:

答案 0 :(得分:0)

对我来说听起来非常合理,因为您提供的代码A 实施I,只有B。事件虽然在B代码的声明中读出extends A implements I但并不意味着A将追溯性地实现接口I - 它说“B扩展A并且还实现I”。

答案 1 :(得分:0)

在Eclipse中为我工作:

A a = new A() { };
a.foo(); // <-- A.foo() found this reference by Eclipse in "References -> Project"