首页 > 解决方案 > 没有参数的Java 8构造函数

问题描述

我正在用 Java 8 编程,我有一个关于初始化不带参数的构造函数的简单问题。以下方式可以接受吗?

class Student {
   List<Grade> grades;

   public Student() {
      grades=new List<Grade>();
   }

}

非常感谢!

标签: java

解决方案


一些事情:除非 List 是您自己的课程,否则上述内容将不起作用。由于标准的 Java List 是一个接口,所以你不能像这里显示的那样将它与 new 一起使用。

那么:这里不需要有默认构造函数。您可以在定义字段的行中对 new 进行调用。当只有一种初始化字段的方法时,请避免使用构造函数。

另外:理想情况下,在良好的 OOP 中,您应该将该字段设为私有,并且如果可能的话也设为最终字段。

最后但同样重要的是:阅读有关菱形运算符的信息。对 new 的调用不再需要类名 Grade。编译器足够聪明,知道这一点。


推荐阅读