java - 摆脱警告?

标签 java

如何在不使用 @SuppressWarnings 的情况下消除以下代码中的警告?

// consoles is an ArrayList of console. The class console extends the class item.
// pcs is an ArrayList of pc. The class pc extends the class item.
public static boolean verify(String type, String model)
{
    ArrayList<item> obj;
    if(type == null) return false;
    else if(type.equals("console")) obj = (ArrayList<item>) consoles.clone();
    else if(type.equals("pc")) obj = (ArrayList<item>) pcs.clone();
    else return false;

    for(int j = 0; j < obj.size(); j++)
        if(obj.get(j).get_model().equals(model))
            return true;

    return false;
}

我在以下行中收到警告unchecked:else if(type.equals

最佳答案

警告是因为 clone()方法返回 Object ,因此编译器不确定该对象是 ArrayList .

而不是使用 clone() ,我推荐:

  1. 使用 new ArrayList<>(consoles) (这是复制构造函数)。

  2. 创建一个新的 ArrayList<item>并使用 addAll将项目复制到新的 ArrayList<item> 的方法.

在一个不相关的注释中,而 ArrayList确实实现了clone() ,请注意,并非所有类都可以这样做,因此clone()可能不起作用。

关于java - 摆脱警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857897/

相关文章:

java - Java 中的 ISO-8859-1 到 UTF-8 (runescape API)

java正则表达式括号

java - 缓冲流在 Java 内部是如何工作的

java - Bean 在测试期间不使用测试资源

java - 使用 PDFBox 解析 PDF 文件(尤其是表格)

java - 从同步子句中重新分配同步对象?

java - 我想在 Java 中的图像上创建一个不可见的可点击对象

java - 如果在 java 中的并发映射之外修改对象会发生什么情况?

java - Spring security 阻止用户操纵 url

java - 按键不起作用