我有一个类型为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>();
说实话,我不知道钻石操作员究竟是什么。
答案 0 :(得分:44)
别担心。这不是邪恶的。这是Java 7的功能。
菱形运算符的目的是简化泛型类的实例化。
例如,而不是
List<Map<Integer,Set<String>>> p = new ArrayList<Map<Integer,Set<String>>>();
使用菱形运算符我们只能写
List<Map<Integer,Set<String>>> p = new ArrayList<>();
如果您想了解更多信息并希望使用它,请快速查看here并确定它是否对您有用。
答案 1 :(得分:3)
菱形运算符用于指定要在集合中使用的数据类型。
例如,ArrayList<String> list = new ArrayList<String>()
。
在Java 7中,我们可以消除类似的类型:
ArrayList<String> list = new ArrayList<>()