2013-05-03 35 views
14

我有一個類型爲patient_class的數組列表,而數組列表類型已用黃色下劃線,IDE提到「新表達式中的冗餘類型參數(使用菱形運算符)」。Java中的鑽石操作符是什麼?

我的問題是:我應該使用鑽石算子嗎?這是必須的嗎?將記錄存儲到數組列表時,會收到任何數據丟失或其他問題嗎?

這裏是我的ArrayList:

public class Register_newpatient extends javax.swing.JFrame { 

    public Register_newpatient() { 
     initComponents(); 
     groupbutton(); 
    } 

    public void groupbutton() 
    { 
     ButtonGroup bg1=new ButtonGroup(); 

     bg1.add(rbopd); 
     bg1.add(rbinpatientcare); 
     bg1.add(rbboth); 
    } 

    all_error_handling checkerror = new all_error_handling(); 
    JFrame frame = new JFrame(); 
    static ArrayList<patient_class>patientlist = new ArrayList<patient_class>(); 

說實話,我不知道什麼鑽石運營商實際上是。

回答

42

別擔心。這不是一個邪惡的東西。它是Java 7的特性。

菱形運算符的用途是簡化泛型類的實例化。

例如,而不是

List<Map<Integer,Set<String>>> p = new ArrayList<Map<Integer,Set<String>>>(); 

與鑽石經營者如果您想了解更多關於它,並希望使用它,我們可以只寫

List<Map<Integer,Set<String>>> p = new ArrayList<>(); 

,請快速瀏覽一下here並決定它是否對你有用。

2

菱形運算符用於指定要在集合中使用的數據類型。例如,ArrayList<String> list = new ArrayList<String>()

在Java 7中,我們可以消除喜歡的類型:

ArrayList<String> list = new ArrayList<>()