编程语言
首页 > 编程语言> > Java警告:[未检查]未检查的转换

Java警告:[未检查]未检查的转换

作者:互联网

我有以下(部分)课程:

public class Graph<O> {
    private ArrayList<Edge> edges;

    public ArrayList<Edge> getEdges() {
        return edges;
    }
}

现在,在其他地方调用方法getEdges()并将结果存储在ArrayList< Edge>类型的变量中时,我得到警告:[unchecked]未经检查的转换:

OtherFile.java:101: warning: [unchecked] unchecked conversion
        ArrayList<Edge> edges = graph.getEdges();
                                              ^
  required: ArrayList<Edge>
  found:    ArrayList

我已经查看了有关此警告的其他多个问题,但是我无法弄清楚自己在做什么错. getEdges()返回ArrayList< Edge&gt ;,为什么我不能将其结果存储在该确切类型的变量中?

解决方法:

当您在原始类型Graph上调用getEdges()方法时,将出现该警告.在这种情况下,所有通用类型都将被其擦除替换.因此,对于Graph原始类型,方法签名变为:

public ArrayList getEdges();

解决方案是使用参数化类型或通配符类型.

标签:java,generics,compiler-warnings
来源: https://codeday.me/bug/20191009/1881682.html