我正在阅读solr的dataimporthandler组件的源代码。我遇到了一个问题
private List<String> readBySplit(String splitBy, String value) {
String[] vals = value.split(splitBy);
List<String> l = new ArrayList<String>();
l.addAll(Arrays.asList(vals));
return l;
}
↑列出1(来自RegexTransformer类的方法)
private List<String> readBySplit(String splitBy, String value) {
String[] vals = value.split(splitBy);
return Arrays.asList(vals);
}
↑列表2(我认为上面的方法应该是)
有谁能告诉我上面两个代码清单之间有什么重大区别?感谢。
答案 0 :(得分:7)
Arrays.asList()
Returns a fixed-size list backed by the specified array.
那是来自javadoc。因此,如果你想要一个动态大小的列表,你需要第一个代码。
答案 1 :(得分:2)
Arrays.asList()
返回固定大小的列表,这是未修改的列表。您无法对其执行添加/删除操作,这样做会抛出Exception
UnsupportedOperationException
。
因此,如果您想对列表
进行一些操作,那么您的第一种方法是合适的答案 2 :(得分:0)
您无法在代码2的列表中添加任何内容,因为它返回固定大小的列表。您将获得“java.lang.UnsupportedOperationException “,但您可以按代码1添加列表返回。