Java中的钻石操作符是什么?

我有一个types为patient_class的数组列表,而数组列表types已经用黄色下划线,IDE提到了“新expression式中的冗余types参数(使用菱形运算符)”。

我的问题是:我应该使用钻石运算符吗? 这是必须的吗? 将logging存储到数组列表时,会出现数据丢失或其他问题吗?

这是我的数据列表:

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

说实话,我不知道什么是钻石经营者。

别担心 这不是一个邪恶的。 这是Java 7的特性。

钻石算子的目的是简化generics类的实例化。

例如,而不是

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

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

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

如果您想了解更多信息并想使用它,请快速浏览一下然后决定它是否对您有用。

钻石操作符用于指定要在“集合”中使用的数据types。

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

在Java 7中,我们可以消除类似于:

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