为什么我收到缺少类型参数和类型转换的警告?

问题描述:

我的课程如下,工作正常,但NetBeans在第18行显示以下警告,我想知道这是什么?为什么我收到缺少类型参数和类型转换的警告?

代码

public class Users { 

     private List<Long> grades; 

     ... 
     public String retrieveAllGrades(){ 

Line 18 this.grades = new ArrayList(); 

      ... 
     } 

     getters and setters 
} 

上线18

Found raw type: ArrayList 
missing type arguments for generic class ArrayList<E> where E is a type-variable: E extends Object declared in class ArrayList 

[unchecked] unchecked conversion 
required: List<Long> 
found: ArrayList 
+0

要求:名单 /发现:ArrayList中,你为什么不试试呢? – Christian

+0

试试么? ArrayList ? – J888

+0

是的,它给你一个提示。 – Christian

你需要做这样的警告:

this.grades = new ArrayList<Long>(); 

这是因为你定义的成绩为List<Long>()但对于较新的JDK版本(用Java 7及以上版本测试),初始化为ArrayList()(您需要很长的部分)

+0

什么都应该是多头?长或长?大写L或更低l? – J888

+0

我已经更新了我的回答 – Baby

+0

谢谢最新的差异有多长还是长? – J888

,您不需要隐式声明类型(在本例中为'Long')。 你可以简单地做:

this.grades = new ArrayList<>();