java - 实例化公历对象
问题描述
在公历上的 Oracle Java 文档中,它给出了一个示例:
// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
我理解GregorianCalendar
是Calendar
抽象类的子类。
我从示例中不明白的是为什么它没有这样编写代码:
GregorianCalender calendar = GregorianCalendar(pdt);
解决方案
100% 可以这样做:
GregorianCalender calendar = GregorianCalendar(pdt);
示例显示这一点的原因:
Calendar calendar = new GregorianCalendar(pdt);
是因为这更灵活一点。
假设您的代码适用于任何类型的日历。也就是说,它不依赖于公历中的具体细节。在这种情况下,您可以将Calendar
其用作变量的类型,您的代码仍然可以编译并正常工作。
通过Calendar
用作变量类型,您允许该变量calendar
保存任何类型的日历。假设您的需求发生了变化,您现在允许用户选择他们想要使用的日历系统。现在你只需要改变=
标志的一部分。无需更改变量的类型。
推荐阅读
- django - 具有不同路径的 django 静态文件
- android - java.io.ioexception 连接改造android上的流意外结束
- terraform - Terraform 在导入当前状态后询问“ami”和“instance_type”
- azure - 无法在 terraform azure 提供程序中获取 SystemAssigned 身份属性
- excel - Excel - 基于另一列的公式链接单元格
- google-maps - Mackbook safari location 一次又一次询问,即使我允许了
- android - W/BiChannelGoogleApi:[FirebaseAuth:] getGoogleApiForMethod() 返回 Gms:com.google.firebase.auth.api.internal.zzal@395d2a7 错误
- forms - Codeignter 3图像上传代码不起作用
- javascript - 无需单击按钮即可将数据视图移动到 javascript
- javascript - 当前周 + 1 每当点击下一个