java - 没有参数的Java 8构造函数
问题描述
我正在用 Java 8 编程,我有一个关于初始化不带参数的构造函数的简单问题。以下方式可以接受吗?
class Student {
List<Grade> grades;
public Student() {
grades=new List<Grade>();
}
}
非常感谢!
解决方案
一些事情:除非 List 是您自己的课程,否则上述内容将不起作用。由于标准的 Java List 是一个接口,所以你不能像这里显示的那样将它与 new 一起使用。
那么:这里不需要有默认构造函数。您可以在定义字段的行中对 new 进行调用。当只有一种初始化字段的方法时,请避免使用构造函数。
另外:理想情况下,在良好的 OOP 中,您应该将该字段设为私有,并且如果可能的话也设为最终字段。
最后但同样重要的是:阅读有关菱形运算符的信息。对 new 的调用不再需要类名 Grade。编译器足够聪明,知道这一点。
推荐阅读
- amazon-web-services - AWS S3 存储复制功能
- excel - 访问条件格式单元格的颜色值(或识别条件格式单元格)
- spring-webflux - Spring 5 WebFlux 使用 WebSocket 的反应式服务器推送通知
- php - 用户偶尔会被注销(仅在 Chrome 中发生)
- html - 为什么我的引导时间线样式不正确?
- amazon-web-services - Athena AWS - 如何将二进制转换为 Bigint
- javascript - 从 GitHub 存储库更新谷歌表格?
- apache-spark - Apache Spark 按 DF 分组,将值收集到列表中,然后按列表分组
- python - AttributeError:模块“asyncio”在 Python 3.6.10 和 Spyder 4.1 中没有属性“WindowsSelectorEventLoopPolicy”
- asp.net-core - 如何让 Gitlab CI 支持 Asp.net Core 3.1?