Java中的钻石运算符是什么?

She*_*n.W 17 java arrays arraylist diamond-operator

我有一个类型为patient_class的arraylist,并且arraylist类型用黄色加下划线,IDE提到了"新表达式中的冗余类型参数(使用菱形运算符代替)".

我的问题是:我应该使用钻石操作员吗?这是必须的吗?将记录存储到arraylist时,是否会出现任何数据丢失或任何其他问题?

这是我的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>();
Run Code Online (Sandbox Code Playgroud)

说实话,我不知道钻石操作员究竟是什么.

Sur*_*tta 44

别担心.这不是邪恶的.它是Java 7的特色.

菱形运算符的目的是简化泛型类的实例化.

例如,而不是

List<Map<Integer,Set<String>>> p = new ArrayList<Map<Integer,Set<String>>>();
Run Code Online (Sandbox Code Playgroud)

与钻石操作员,我们只能写

List<Map<Integer,Set<String>>> p = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

如果你想知道更多关于它,想使用它,请快速浏览一下这里,并决定是否对你有用.


pra*_*nth 5

菱形运算符用于指定要在集合中使用的数据类型。

例如,ArrayList<String> list = new ArrayList<String>()

在 Java 7 中,我们可以消除这样的类型:

ArrayList<String> list = new ArrayList<>()
Run Code Online (Sandbox Code Playgroud)