gpt4 book ai didi

java - Diamond 运算符、泛型和编译问题

转载 作者:行者123 更新时间:2023-11-30 07:16:27 30 4
gpt4 key购买 nike

我遇到了一个问题,我的代码在 NetBeans 中编译并运行良好,但是当我尝试使用 javac 通过命令行进行编译时,出现未经检查的警告错误,并且失败。当我使用 -Xlint:unchecked 进行编译时,我会得到错误的详细描述,指出问题所在。

在这里,我无法正确使用泛型,这就是我的问题所在: List<String> name = new ArrayList();

添加菱形运算符后,代码现在可以在 IDE 内和外正常编译
List<String> name = new ArrayList<>();

看来在第一个示例中我必须使用强制转换,而第二个示例则使用泛型。

我的问题是:这是 IDE 中的错误吗? NetBeans 似乎可以捕获各种其他错误,但为什么我的代码在 IDE 中可以正常编译,但在命令行中却不能?很明显,我是编程新手,所以如果我未能提出任何有意义的问题,请原谅我。

接近回答我的问题的信息: The Java™ Tutorials , What is the point of the diamond operator in Java 7?(stackOverflow)

我查了一下,发现了 Bug 250587,但不一样。另外,我已了解最新情况,NetBeans 上没有可用的更新。我的javac版本是1.8.0_91

感谢您花时间阅读本文。

最佳答案

不是错误,

List<String> name = new ArrayList();  //this instantiates a raw type of `ArrayList`

还有

List<String> name = new ArrayList<String>(); // this instantiates an `ArrayList` with parametric type `String`

还有

List<String> name = new ArrayList<>(); // this is a short-hand since Java 7 for the above

关于java - Diamond 运算符、泛型和编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306236/

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