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> ;,为什么我不能将其结果存储在该确切类型的变量中?
解决方法:
当您在原始类型Graph上调用getEdges()方法时,将出现该警告.在这种情况下,所有通用类型都将被其擦除替换.因此,对于Graph原始类型,方法签名变为:
public ArrayList getEdges();
解决方案是使用参数化类型或通配符类型.
标签:java,generics,compiler-warnings 来源: https://codeday.me/bug/20191009/1881682.html