令牌“。”的语法错误,此令牌后应@

时间:2019-10-22 07:52:14

标签: java arrays list

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"}传递的参数视为此处的块?

3 个答案:

答案 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-支持列表的数组

     

返回:

     

指定数组的列表视图