假设我有:
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>
。您还需要B
和C
的接口:
interface myinterface {
void doSomething();
}
B
和C
都必须是implement myInterface
你的内部类必须实现一个接口;否则编译器不能确定所有类都有doSomething()方法,因此不允许。
你想定义一个数组列表吗?
ArrayList<T> al = new ArrayList<T>();
...
al.get(0).doSomething();
不,你还不能。你还需要声明一个名为T的父类或接口T,它有一个doSomething方法,你的类A.B和A.C需要实现T