public class ListFile {
public static void main(String[] args){
String[] arr = {"text", "tekl"};
List<String> list = Arrays.asList(arr);
List<String> listt = Arrays.asList({"text", "tttt"});
}
}
第4行完全正常。但是,第5行在第36列给出错误:“令牌“。”的语法错误,@预期在此令牌之后”。
是否将{"text", "tttt"}
传递的参数视为此处的块?
答案 0 :(得分:3)
执行Type[] arr = { …, … };
就是array initializer。只能在数组声明(或数组创建表达式,即new String[]{"a", "b"}
)中使用。
Arrays.asList
被定义为接受varargs参数(asList(T... a)
),因此您不必先将参数包装在数组中:Arrays.asList("text", "tek1")
已经根据您的参数隐式创建了一个数组并将其传递给方法。
答案 1 :(得分:1)
您正在混合可能的正确合成器。这些是您要指定的可能性:
List<String> listt = Arrays.asList("text", "tttt");
或
List<String> listt = Arrays.asList(new String[]{"text", "tttt"});
答案 2 :(得分:0)
您尝试在Arrays.asList中插入无效的内容。 尝试使用
ArrayList
来自Java 8 javadocs
asList
@SafeVarargs
公共静态列表asList(T ... a)
返回由指定数组支持的固定大小的列表。 (更改为返回列表,将其“写入”到数组。)此方法起作用 作为基于数组的API和基于集合的API之间的桥梁, 与Collection.toArray()结合使用。返回的列表是 可序列化并实现RandomAccess。
此方法还提供了一种方便的方法来创建固定大小的列表,该列表初始化为包含多个元素:
列表样式= Arrays.asList(“ Larry”,“ Moe”,“ Curly”);
类型参数:
T-数组中对象的类
参数:
a-支持列表的数组
返回:
指定数组的列表视图