gpt4 book ai didi

Java 通配符通用作为 Eclipse 和 SonarQube 中的返回警告

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:47 40 4
gpt4 key购买 nike

private List gridModel;

public List getGridModel() {
return gridModel;
}

Eclipse 显示警告:

List is a raw type. References to generic type List should be parameterized.

将代码更改为以下将删除警告

private List<?> gridModel;

public List<?> getGridModel() {
return gridModel;
}

但是上面的代码在 SonarQube 中显示了一个 Major pitfall 错误,它说:

Remove usage of generic wildcard type. Generic wildcard types should not be used in return parameters

那么我该如何解决这个警告呢?
我看到一个similar question here但找不到解决方案。

使用 Class<? extends Object>没有删除 Sonar 警告。

最佳答案

So how can I fix this warning ?

你可以为你的类使用类型参数:

public class GridModelHolder<T> {
private List<T> gridModel;

public List<T> getGridModel() {
return gridModel;
}
}

然后客户端代码可以决定什么类型的List GridModelHolder持有:

GridModelHolder<String> gridModelHolder = new GridModelHolder<String>(new ArrayList<String>);

但是,如果您坚持使用原始类型,则可以抑制警告或简单地使用对象列表(不推荐这两种方法)

@SuppressWarnings("unchecked")
public class GridModelHolder {
private List gridModel;

public List getGridModel() {
return gridModel;
}
}

public class GridModelHolder {
private List<Object> gridModel;

public List<Object> getGridModel() {
return gridModel;
}
}

关于Java 通配符通用作为 Eclipse 和 SonarQube 中的返回警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30543400/

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