界面
public interface Inter
{
}
是否可以完成此操作,因为我放置在ArrayList中的对象不共享相同的父类,但它们都共享相同的接口。
在我的主要方法中
List<Inter> inventory = new ArrayList<Inter>();
答案 0 :(得分:2)
是的,这是可能的。下次认真地试试吧。
此方法通常对您要执行的操作非常有用:存储共享公共接口的对象
答案 1 :(得分:2)
这绝对是可行的,它可以让您在同一Inter
中混合List
的不同实现:
public class InterImplOne implements Inter {
...
}
public class InterImplTwo implements Inter {
...
} ...
List<Inter> inventory = new ArrayList<Inter>();
inventory.add(new InterImplOne());
inventory.add(new InterImplTwo());
当您想要编程到需要具有不同实现的多个项目的接口时,这非常有用。
答案 2 :(得分:0)
总之,是的。查看arraylist here的文档。当你想要一个arraylist时,这种方法很有效,当你遍历它时,所有对象都有类似的属性。
正如其他人所说,尝试这是一件好事。试验是一种很好的学习方法。
答案 3 :(得分:0)
是的,您可以使用匿名内部类来实例化该列表的组件,如下所示:
package test.regex;
import java.util.ArrayList;
public class TestM {
interface C{
public void print(int i );
}
public TestM() {
ArrayList<C> list = new ArrayList<TestM.C>();
for(int i=0; i< 10; i++ ){
final int aa = i;
list.add(new C() {
public void print(int a) {
System.out.println(Integer.toString(aa + a).toUpperCase());
}
});
}
for(C c : list){
c.print(12);
}
}
public static void main(String[] args){
new TestM();
}
}