作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 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;
}
我可以改变什么来避免这些警告?如果有更好的方法,我们将不胜感激朝着正确的方向插入。
最佳答案
创建一个同时包含Integer
和String
的新类
例如
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/
我是一名优秀的程序员,十分优秀!