What is the diamond operator in Java? [duplicate]

最后都变了- 提交于 2019-11-26 03:44:37

问题


I have an arraylist with type patient_class and the arraylist type has been underlined in yellow and the IDE has mentioned \"redundant type arguments in new expression (use diamond operator instead)\".

My problem is: Should I use the diamond operator instead? Is it a must? Will I get any data loss or any other problem when storing records to the arraylist?

Here is my 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>();

To be honest I have no idea what a diamond operator actually is.


回答1:


Don't worry. It's not an evil. It's feature of Java 7.

The purpose of the diamond operator is to simplify instantiation of generic classes.

For example, instead of

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

with the diamond operator we can write only

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

If you want to know more about it and want to use it, please have a quick look here and decide whether it's useful to you or not.




回答2:


The diamond operator is used to specify what type of data you are going to use in the Collections.

For example, ArrayList<String> list = new ArrayList<String>().

In Java 7, we can eliminate the type like:

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


来源:https://stackoverflow.com/questions/16352816/what-is-the-diamond-operator-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!