2013-05-03 2 views
14

Ho un arraylist con tipo patient_class e il tipo di arraylist è stato sottolineato in giallo e l'IDE ha menzionato "argomenti di tipo ridondanti in nuova espressione (usa invece operatore diamond)".Cos'è l'operatore diamond in Java?

Il mio problema è: dovrei usare l'operatore diamante invece? È un must? Avrò perdite di dati o altri problemi durante la memorizzazione dei record nell'arrayist?

Ecco il mio 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>(); 

Per essere onesti non ho idea di quello che in realtà è un operatore diamante.

risposta

42

Non preoccuparti. Non è un male. È una funzionalità di Java 7.

Lo scopo dell'operatore Diamond è semplificare l'istanziazione di classi generiche.

Ad esempio, invece di

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

con l'operatore diamante possiamo scrivere solo

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

Se vuoi sapere di più su di esso e si desidera utilizzarlo, si prega di dare un'occhiata veloce here e decidi se ti è utile o meno.

2

L'operatore di diamante viene utilizzato per specificare il tipo di dati che si intende utilizzare nelle raccolte.

Ad esempio, ArrayList<String> list = new ArrayList<String>().

In Java 7, possiamo eliminare il tipo come:

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