2013-05-03 26 views
14

Mam listę array z typem patient_class, a typ tablicy został podkreślony na żółto, a IDE wspomniało "argumenty redundantnego typu w nowym wyrażeniu (zamiast tego użyj operatora diamentu)".Co to jest operator diamentów w Javie?

Mój problem: czy powinienem zamiast tego używać operatora diamentów? Czy to musi być? Czy podczas zapisywania rekordów na liście macierzy wystąpi jakakolwiek utrata danych lub jakikolwiek inny problem?

Oto mój 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>(); 

Szczerze mówiąc nie mam pojęcia, co to właściwie jest operator diament.

Odpowiedz

42

Nie martw się. To nie jest zło. Jest to funkcja Java 7.

Celem operatora diamentów jest uproszczenie tworzenia klas ogólnych.

Na przykład, zamiast

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

z operatorem diamentu możemy napisać tylko

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

Jeśli chcesz wiedzieć więcej na ten temat i chcesz go używać, proszę rzucić okiem here i zdecyduj, czy jest to przydatne dla Ciebie, czy nie.

2

Diamentowy operator służy do określenia rodzaju danych, które będą używane w kolekcjach. Na przykład ArrayList<String> list = new ArrayList<String>().

W Javie 7, możemy wyeliminować rodzaj takich jak:

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