gpt4 book ai didi

java - 将@SuppressWarnings 放在涉及 Runnable lambda 作为参数的单行代码中的什么位置?

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

我想弄清楚该怎么做

Executors.newSingleThreadExecutor().submit(new Runnable() {
@Override
@SuppressWarnings("unchecked")
public void run() {
List list = new LinkedList();
list.add("some string"); //without
//`@SuppressWarnings("unchecked")` javac warns about
//`[path to file].java: [path to file].java uses unchecked or unsafe operations.`
}
});

@SuppressWarnings("unchecked")
Runnable runnableJava8 = () -> {
List list = new LinkedList();
list.add("some string");
};
Executors.newSingleThreadExecutor().submit(runnableJava8);

在一行中,例如

@SuppressWarnings("unchecked") //where to put this??
Executors.newSingleThreadExecutor().submit(() -> {
List list = new LinkedList();
list.add("some string");
});

导致<identifier> expected以及放置 @SuppressWarnings之前(){} .

我不想修复代码以避免警告,我希望能够使用 @SuppressWarnings("PMD.AvoidThrowingRawExceptionTypes")和其他人一样。将注释放在周围的 block /方法/类级别上是可行的,但它的影响比我想要的要大 - 这是一个有效的解决方法,但没有问题的答案。

最佳答案

最好的选择是修复它不会触发警告的代码 sl(只需声明

List<String> list = new LinkedList<>();

如果出于任何原因不能或不想这样做:在您的场景中,您可以在有问题的局部变量声明之前添加注释:

Executors.newSingleThreadExecutor().submit(() -> {
@SuppressWarnings("unchecked")
List list = new LinkedList();
list.add("some string");
});

我能想到的唯一其他选择是将注释放在周围的类级别(所有这些代码都添加到的级别)。但我强烈反对它,您应该希望在同类的其他地方收到此类警告。

关于java - 将@SuppressWarnings 放在涉及 Runnable lambda 作为参数的单行代码中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45470841/

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