任何人都可以请解释为什么下面两个声明的情况是无效的吗?如果有人能够做志愿者,我会非常感激他的帮助。整数类型的Java列表声明generic
情况1:List< Integer> ls= new List< Integer>();
情况2:List< List< Integer>> ll= new List< List< Integer>>();
任何人都可以请解释为什么下面两个声明的情况是无效的吗?如果有人能够做志愿者,我会非常感激他的帮助。整数类型的Java列表声明generic
情况1:List< Integer> ls= new List< Integer>();
情况2:List< List< Integer>> ll= new List< List< Integer>>();
List
是Interface
不是类。
尝试使用ArrayList
因为List
在interface
,他们永远不能实例化。 ArrayList是List
interface
的实现类。 你可以做这样的事情:
ArrayList al =new ArrayList(); //ArrayList implements List,so this will give you all functionality of List
都是无效becaluse
List
是一个接口,你不能创建对象 考虑这个
Interface A<> {
}
(简单的传承是不是?)
并且您正在尝试像
A<Something> a=new A<>();
是相同
List< Integer> ls= new List< Integer>();
但Java得到了ArrayList and LinkedList
对于这一点,你必须做像
List<Integer> list=new ArrayList<>();
由于ArrayList
实现List
接口和扩展抽象类AbstractList
是因为List是接口和接口不能被实例化?但是然后在下面的代码似乎像与铸造实例: - 公共接口甲 { } 公共类B实现阿 { } 公共静态无效的主要(字串[] args) { 测试=新B() ; // A test = new A(); //不会编译 } –
'B'是一类,'A'只是一个接口 –
去+1您的问题只是为您的个人资料图片。 –