This question already has answers here:
What is a raw type and why shouldn't we use it?
                            
                                (15个答案)
                            
                    
                2年前关闭。
        

    

这是我最近的项目的一个非常简单的版本,它演示了该问题:

import java.util.List;
import java.util.ArrayList;
class Class{
        List<Character> l1 = new ArrayList<>();
        List<Character> l2 = new ArrayList<>();
        List getList(){
                return l1;
        };
        void setList(){
                l2.clear();
                l2.addAll(getList());
        };
}
class Main{
        public static void main(String[]args){
                Class object = new Class();
                object.setList();
        };
}


当我编译它时,编译器会说:


  注意:Class.java使用未经检查或不安全的操作。注意:重新编译
  使用-Xlint:未检查详细信息。


当我拿走l2.addAll(getList());时,编译器不会返回该消息,但是很显然,这使我的项目搞砸了。

什么是未经检查或不安全的操作,如何解决?

最佳答案

代替

List getList(){

指定类型参数,例如
List<Character> getList(){

以前,您返回的是原始类型,而不是通用类型。

10-08 09:02