我如何摆脱这个警告?

sam*_*moz 2 java warnings

我从Java代码收到以下警告:

Lexer.java:591: warning: [unchecked] unchecked conversion
found   : java.util.ArrayList
required: java.util.ArrayList<java.lang.Integer>
ArrayList<Integer> tempArray = temp.get(theToken);
Run Code Online (Sandbox Code Playgroud)

我已经尝试将它转换为ArrayList,但这没关系,它仍然出现.

我怎么能摆脱这个?

eri*_*son 6

调用get返回原始(非泛型)ArrayList.

没有足够的背景来提出最好的方法.get可以修改该方法以将其返回类型声明为List<Integer>.如果temp是a Map,请使用正确的泛型类型参数引用它:Map<Token, List<Integer>>.或者,如果您无法修改返回类型,则可以将结果分配给a List<?>,并Integer在使用它们时将其内容转换为.

请注意,我建议List而不是ArrayList.通常声明,具有抽象类型的API(而不是您碰巧使用的实现类)确保了未来的灵活性.