Java-外部类内部的内部类数组

Java-外部类内部的内部类数组,java,polymorphism,inner-classes,outer-classes,Java,Polymorphism,Inner Classes,Outer Classes,假设我有: public class A { public A() { ... } ... public class B { public B() { ... } public void doSomething() { ... } ... } public class C { public C() { ... } public void doSomething(

假设我有:

public class A {
  public A() {
    ...
  }
  ...

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

  public class C {
    public C() {
      ...
    }
    public void doSomething() {
      ...
    }
    ...
  }
}
如果我想创建一个ArrayList,它可以同时包含B和C,这样我就可以在a中调用
myArray.get(I).doSomething()
,我想声明我的ArrayList的类型是什么?

List
。您还需要一个用于
B
C
的接口:

interface myinterface {
    void doSomething();
}

B
C
都必须
实现myInterface

您的内部类必须实现一个接口;否则,编译器无法确保所有类都有doSomething()方法,因此将不允许使用它。

是否将ArrayList定义为:

ArrayList<T> al = new ArrayList<T>();
...
al.get(0).doSomething();
ArrayList al=new ArrayList();
...
al.get(0.doSomething();
不,你还不能。您还需要声明一个名为T的父类或接口T,它有一个doSomething方法,您的类a.B和a.C需要实现T