我知道在对象列表中使用通用列表的两个原因。
限制可以将哪种类型的对象插入List
List<Object> stringObjects = Arrays.asList("a",new Integer(5));
List<String> genericStrings = Arrays.asList("a");
stringObjects.get(0).length();//compile error
genericStrings.get(0).length();
要访问IDE中的正确方法
{{1}}
当我把这个答案给了一个面试时,但他们对我的答案似乎并不满意。 那么在对象列表上使用通用列表还有其他原因吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
在我看来,你的想法是正确的,但没有很好的形成。
它不是关于&#34;在IDE&#34;中访问正确的方法,它是关于多态并避免显式转换。
public interface DoAble {
void doSomething();
}
public Class FirstImpl implements DoAble {
public void doSomething() {
// Do something here
}
}
public Class SecondImpl implements DoAble {
public void doSomething() {
// Do something here
}
}
List list = new Arrays.asList(new SecondImpl(), new FirstImple());
for (Object o : list) {
((DoAble) o).doSomething();
}
它有效,但它很难看。
java.lang.ClassCastException
。List<DoAble> list = new Arrays.asList(new SecondImpl(), new FirstImple());
for (DoAble o : list) {
o.doSomething();
}
易于使用和阅读。
DoAble
的对象。