gpt4 book ai didi

java - 扩展 java.util.calendar 类

转载 作者:行者123 更新时间:2023-12-01 17:23:40 25 4
gpt4 key购买 nike

我想扩展 java.util.Calendar 类以添加一些额外的功能:

import java.util.Calendar;
abstract class ExtendedCalendar extends Calendar {
public static ExtendedCalendar getInstance()
{
Calendar c = Calendar.getInstance();
return (ExtendedCalendar)c;
}
}

我总是遇到这个异常,因为 Calendar.getInstance 返回一个 GregorianCalendar:

java.lang.ClassCastException: java.util.GregorianCalendar cannot be cast to ExtendedCalendar

但是 GregorianCalendar 到 Calendar 的转换怎么可能起作用呢?

Calendar calendar = (Calendar)c;

我该如何解决这个问题?

最佳答案

Calendar.getInstance() 是一个静态工厂方法,事件不允许任何自定义或注入(inject)。它返回具体日历的实例。在大多数情况下,它是GregorianCalendar。根据您所在的区域设置,它也可以是 BuddhistCalendarJapanImperialCalendar

如果您想创建日历实例,只需直接调用构造函数即可:new ExtendedCalendar()

顺便说一句,恕我直言,您实际上不必扩展 GregorianCalendar。扩展功能不仅限于扩展类。创建您自己的类,在计算中使用其他日历,而不是扩展它。

关于java - 扩展 java.util.calendar 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com