web-dev-qa-db-fra.com

Qu'est-ce que l'opérateur diamant en Java?

J'ai un arraylist avec le type patient_class et le type arraylist a été souligné en jaune et le IDE a mentionné "les arguments de type redondants dans la nouvelle expression (utilisez l'opérateur losange à la place)".

Mon problème est: Dois-je utiliser l'opérateur diamant à la place? Est-ce un must? Vais-je subir une perte de données ou tout autre problème lors du stockage des enregistrements dans l'arraylist?

Voici mon 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>();

Pour être honnête, je n'ai aucune idée de ce qu'est réellement un opérateur diamantaire.

17
Shehan.W

Ne t'inquiète pas. Ce n'est pas un mal. C'est la fonction de Java 7.

Le but de l'opérateur losange est de simplifier l'instanciation des classes génériques.

Par exemple, au lieu de

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

avec l'opérateur diamant on ne peut écrire que

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

Si vous voulez en savoir plus et que vous voulez l'utiliser, jetez un coup d'œil rapide here et décidez si c'est utile à vous ou pas.

44
Suresh Atta

L'opérateur losange est utilisé pour spécifier le type de données que vous allez utiliser dans les collections.

Par exemple, ArrayList<String> list = new ArrayList<String>().

Dans Java 7, nous pouvons éliminer le type comme:

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