当前位置: 首页 > 面试题库 >

Java中的菱形运算符是什么?

洪博艺
2023-03-14
问题内容

我有一个类型为Patient_class的arraylist,并且用黄色下划线标出了arraylist类型,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>();

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


问题答案:

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

例如,代替

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

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

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


 类似资料:
  • 问题内容: Java 7中的菱形运算符允许如下代码: 但是,在Java 5/6中,我可以简单地编写: 我对类型擦除的理解是这些完全相同。(无论如何,泛型都会在运行时删除)。 问题答案: 是在左侧,你使用的是通用类型,而在右侧,你使用的是原始类型LinkedList。Java中的原始类型实际上仅存在于与前泛型代码的兼容性,并且除非绝对必要,否则绝对不能在新代码中使用。 现在,如果Java从一开始就具

  • 两者的区别是什么 和 当我创建一个新的ArrayList时,钻石操作员是必要的吗?

  • java 7中的菱形运算符允许以下代码: 然而,在Java 5/6中,我可以简单地编写: 我对类型擦除的理解是,它们完全相同。(无论如何,泛型会在运行时被删除)。 为什么要为钻石而烦恼呢?它允许哪些新功能/类型的安全性?如果它不能产生任何新的功能,为什么他们会把它作为一个功能提出来?我对这个概念的理解有缺陷吗?

  • 我正在尝试使用diamond运算符,但收到以下消息: Source 1.5中不支持diamond运算符(使用Source 7或更高版本启用diamond运算符) 它在Android的netbeans中是可以修复的吗?

  • 我在idea中编译一些简单的源代码时遇到了这个错误。 jdk是oracle的1.7.40 但是在哪里可以添加这个“-source 7”选项呢? 我尝试添加ide设置,但没有效果。