gpt4 book ai didi

java - 避免 Java 泛型警告?

转载 作者:行者123 更新时间:2023-12-01 12:35:05 25 4
gpt4 key购买 nike

我对 Java 的泛型功能很陌生,并且在我的一种方法中遇到了一些困难。 Eclipse 给了我几个警告,我想避免这些警告。该方法采用 boolean 标志作为其参数,并返回 List<Integer>List<String>取决于 boolean 值。我可以将该方法分成两个,每种情况一个,但我宁愿不这样做,以便将逻辑保留在一处。

以警告作为注释的简化方法:

private <T> List<T> getList(boolean returnInt) {
// List is a raw type. References to generic type List<E> should be parameterized
List returnList;
if (returnInt) {
returnList = new ArrayList<Integer>();
} else {
returnList = new ArrayList<String>();
}

if (mShowNew) {
if (returnInt) {
// Type safety: The method add(Object) belongs to the raw type List.
// Refs to generic type List<E> should be parameterized.
returnList.add(ID_NEW);
} else {
// Type safety: The method add(Object) belongs to the raw type List.
// Refs to generic type List<E> should be parameterized.
returnList.add("New");
}
}
if (mResume) {
if (returnInt) {
returnList.add(ID_RESUME);
} else {
returnList.add("Resume");
}
}
// Pattern continues

// Type safety: The expression of type List needs unchecked conversion to
// conform to List<T>
return resultList;
}

我可以改变什么来避免这些警告?如果有更好的方法,我们将不胜感激朝着正确的方向插入。

最佳答案

创建一个同时包含IntegerString的新类

例如

  public class Result {
private String stringResult = null;
private Integer intResult = null;
}

根据需要填写此内容并将其用作

  List<Result> returnList;

当然也让你的方法返回这个

private List<Result> getList(boolean returnInt) {

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

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