Это проблема дизайна, проблема Eclipse или лазейка в Java? - PullRequest
0 голосов
/ 27 июля 2011

Пусть в рабочем пространстве 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 голосов
/ 27 июля 2011

У меня работает в Eclipse:

A a = new A() { };
a.foo(); // <-- A.foo() found this reference by Eclipse in "References -> Project"
0 голосов
/ 27 июля 2011

Звучит вполне разумно для меня, как в предоставленном вами коде A делает не реализует I, только B делает.Событие, хотя в объявлении B код считывает extends A implements I, это не означает, что A будет ретроспективно реализовывать интерфейс I - он говорит: «B расширяет A, а также реализует I».

...