最近学习think in java, 做练习时,发现这么一个问题:
代码一:
public static void main(String[] args) {
List<Integer> ints = Arrays.asList(1,2,3,4,5,6,7);
print("1: "+ints);
Integer h = new Integer(8);
ints.add(new Integer(8));
print("2: " + ints);
}
运行时提示错误:java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source>但是把代码改为如下后却能正常运行:
public static void main(String[] args) {
List<Integer> ints = new ArrayList<Integer>();
print("1: "+ints);
Integer h = new Integer(8);
ints.add(new Integer(8));
print("2: " + ints);
}
谁能帮忙解释一下为什么?
代码一:
public static void main(String[] args) {
List<Integer> ints = Arrays.asList(1,2,3,4,5,6,7);
print("1: "+ints);
Integer h = new Integer(8);
ints.add(new Integer(8));
print("2: " + ints);
}
运行时提示错误:java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source>但是把代码改为如下后却能正常运行:
public static void main(String[] args) {
List<Integer> ints = new ArrayList<Integer>();
print("1: "+ints);
Integer h = new Integer(8);
ints.add(new Integer(8));
print("2: " + ints);
}
谁能帮忙解释一下为什么?
解决方案 »
- 解析大量数据的excel2007怎么获取列的类型
- 用JAVA来读取DBF文件 如何实现?
- 在java中用jxl将SqlServer数据库中的数据导出生成execl表格
- 写一程序定时检测某一数据库,每次查询这数据库中最新更新的记录?这个过程怎么实现?大家帮帮忙
- oracle blob插入不进去图片
- 如何限制杂JTextField中输入只有两个数字且输入的数字是01-12
- 我是新来的,请高手帮忙
- 如何保存JTextPanel中设置的字体样式
- 如何解析XML文件
- 小问题:Access--->SQL Server移植后,java程序不正常工作?
- 框架如何更改兄弟框架的样式?
- java如何读取解析指定位数的二进制流
这个返回的是Arrays中的private class ArrayList非java.util.ArrayList()
里面的add方法直接返回了异常
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
Arrays.asList返回的List是Arrays的私有类Arrays.ArrayList
它直接继承自AbstractList
AbstractList默认的add方法就是抛出UnsupportedOperationException
它和java.java.util.ArrayList是不同的实现
看一下jdk源码就明白了