【问题标题】:What is the diamond operator in Java? [duplicate]Java中的菱形运算符是什么? [复制]
【发布时间】:2013-04-27 11:56:09
【问题描述】:

我有一个类型为 patient_class 的数组列表,该数组列表类型用黄色下划线,IDE 提到了“新表达式中的冗余类型参数(改用菱形运算符)”。

我的问题是:我应该改用菱形运算符吗?这是必须的吗?将记录存储到 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>();

说实话,我不知道钻石操作员到底是什么。

【问题讨论】:

    标签: java arrays arraylist diamond-operator


    【解决方案1】:

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

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

    例如,而不是

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

    使用菱形运算符我们只能写

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

    如果您想了解更多并想使用它,请快速查看here 并决定它是否对您有用。

    【讨论】:

      【解决方案2】:

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

      例如,ArrayList&lt;String&gt; list = new ArrayList&lt;String&gt;()

      在 Java 7 中,我们可以消除如下类型:

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

      【讨论】:

        猜你喜欢
        • 2012-01-24
        • 1970-01-01
        • 2015-07-14
        • 2011-04-02
        • 2012-06-15
        • 1970-01-01
        • 2011-05-09
        相关资源
        最近更新 更多