外部类内部类的数组



假设我有:

public class A {
  public A() {
    ...
  }
  ...
  public class B {
    public B() {
      ...
    }
    public void doSomething() {
      ...
    }
    ...
  }
  public class C {
    public C() {
      ...
    }
    public void doSomething() {
      ...
    }
    ...
  }
}

如果我想创建一个包含B和C的数组列表,我可以在a中调用myArray.get(i).doSomething(),我想声明我的数组列表的类型是什么?

List<myInterface>。您还需要BC的接口:

interface myinterface {
    void doSomething();
}

BC都必须是implement myInterface

你的内部类必须实现一个接口;否则编译器不能确定所有类都有doSomething()方法,因此不允许。

你想定义一个数组列表吗?

ArrayList<T> al = new ArrayList<T>();
...
al.get(0).doSomething();

不,你还不能。你还需要声明一个名为T的父类或接口T,它有一个doSomething方法,你的类A.B和A.C需要实现T

相关内容

  • 没有找到相关文章

最新更新