List<String>继承List<Object>,判断下面语句是否合法 List<String> ls= new ArrayList<String>(); List<Objec> lo= ls; lo.add(new Object); String s= ls.get(ls.size()-1)
时间: 2023-06-07 11:08:53 浏览: 223
抱歉,我可以回答这个问题。下面的语句不合法:
List<Objec> lo= ls;
因为 List<String> 不继承 List<Object>,所以无法把一个 List<String> 对象赋值给一个 List<Object> 引用变量。正确的做法是使用通配符来解决这个问题:
List<? extends Object> lo = ls;
这样就可以把 List<String> 对象赋值给一个 List<? extends Object> 引用变量了。但是,由于 lo 引用的是一个通配符类型,所以不能往里面添加元素,只能获取元素。
相关问题
下面五条语句中,错误的有_______________________________________________。 (1)ArrayList<String> lists = new ArrayList<String>(); (2)ArrayList<Object> lists = new ArrayList<String>(); (3)ArrayList<String> lists = new ArrayList<Object>(); (4)ArrayList<String> lists = new ArrayList(); (5)ArrayList lists = new ArrayList<String>();
错误的语句是:(2)ArrayList<Object> lists = new ArrayList<String>(),(3)ArrayList<String> lists = new ArrayList<Object>(),(4)ArrayList<String> lists = new ArrayList()和(5)ArrayList lists = new ArrayList<String>()。
List<String> list = new ArrayList<String>();和List<String> list = new ArrayList<>();有什么区别,两者使用时因注意什么
这两种写法没有任何区别,都可以创建一个泛型为String类型的ArrayList。
在Java 7之前,List<String> list = new ArrayList<String>();是正确的写法,其中的类型参数需要在<>中指定。而Java 7开始,引入了“菱形操作符”(diamond operator),可以省略右侧的类型参数,即List<String> list = new ArrayList<>(); 也是正确的写法。
在使用时,需要注意以下几点:
1.使用时需要注意类型匹配,即List中的元素类型应与定义时指定的类型参数一致。
2.需要使用List接口中定义的方法,例如add(),remove(),get()等等。
3.在遍历List时,可以使用for-each循环,也可以使用传统的for循环,但需要注意循环变量的类型应与List中的元素类型一致。
阅读全文