gpt4 book ai didi

java - Java 泛型的问题

转载 作者:行者123 更新时间:2023-12-01 06:48:55 24 4
gpt4 key购买 nike

ArrayList<String> list = new ArrayList<String>();
list = (ArrayList<String>) Files.readAllLines(FilePath);

在上面的代码中,如果我删除第二行中的显式转换,编译器会给出错误。考虑到 Files.readAllLines(FilePath) 的事实,为什么需要这种显式转换?返回 List<String> ,和ArrayList<String>实现List<String>

最佳答案

方法Files.readAllLines()只保证返回 List<String> 类型的对象,但不是更具体的类型 ArrayList<String> 。返回列表的实际实现类型可能因不同的 JDK 实现而异(它们只需要是 List<String> 的子类,因此,虽然对 ArrayList<String> 的强制转换可能在您的 JDK 实现环境中工作,但在您的 JDK 实现中可能不起作用另一个。

如果您确实需要将列表设为 ArrayList,则可以使用以下代码:

ArrayList<String> list = new ArrayList<String>();
list.addAll(Files.readAllLines(FilePath));

关于java - Java 泛型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57253191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com