问题
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