Arrays.asList方法返回类型的问题。

巷子里的鸟 2016-10-24 01:16:42
做了一个练习发现一直报错。网上找了一段代码学习。
import java.util.Arrays;
import java.util.List;

public class ArrayDemo1 {
public static void main (String args[]) {

// create an array of strings
String a[] = new String[]{"abc","klm","xyz","pqr"};

List list1 = Arrays.asList(a);

// printing the list
System.out.println("The list is:" + list1);
}
}

却报错了Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at ArrayList.Al1.main(Al1.java:5)
主要是这一句
   List list1 = Arrays.asList(a);

JDK文档是这么说的:
public static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同 Collection.toArray() 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素: List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
但是改了
   List<String>  list1 = Arrays.asList(a);
也是错

System.out.println(Arrays.asList(a).getClass());

运行这句话结果是class java.util.Arrays$ArrayList 看不懂。。

求大神指导。
...全文
539 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
肃穆丶 2016-10-24
  • 打赏
  • 举报
回复
tn_java 2016-10-24
  • 打赏
  • 举报
回复
家里敷泥呀 2016-10-24
  • 打赏
  • 举报
回复
把完整的报错信息贴出来,另外你的jdk版本号,再有确认下你编译的是不是这份代码,这份代码没有问题。
  • 打赏
  • 举报
回复
你是不是jdk路径配置有问题 我的代码和你一样都没有报错
  • 打赏
  • 举报
回复
  //asList返回的就是一个ArrayList也就是ArrayList.asList(a)===>[abc, klm, xyz, pqr]
//ArrayList.asList(a).getClass()===>得到[abc, klm, xyz, pqr]的类型==》class java.util.Arrays$ArrayList
  @SafeVarargs
    public static <T> List<T> asList(T... a) 
        return new ArrayList<>(a);
    
巷子里的鸟 2016-10-24
  • 打赏
  • 举报
回复
代码是我网上看到的class ArrayDemo1,我把它复制到我电脑上的临时工程上,改名Al1,是这个文件没错 C:\Users\m>java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) 版本8u102, 也不知道什么问题,今天打开电脑就能运行了。。 很感谢各位大神热情解答。

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧