在枚举类中,如何将值转换为类型java.util.date
?
枚举仍然必须有一个名字。
我尝试过:
ENUM_OPTION1(Date(10000000000L))
但是我说一个错误 即使我在文件顶部导入了该类,也无法识别“符号日期(长)”。
答案 0 :(得分:2)
new Date( … )
使用new
实例化java.util.Date
。
ENUM_OPTION1( new Date( 10_000_000_000L ) )
FYI,java.util.Date
是一个可怕的类,几年前被 java.time 类(特别是Instant
)取代。
在您的枚举上添加一个构造函数。在您声明的枚举的每个实例上,调用构造函数。向该构造函数传递特定日期。参见tutorial by Oracle。
public enum History {
US_DECLARATION_OF_INDEPENDENCE( LocalDate.of( 1776 , Month.July , 4 ) ) ,
US_CONSTITIUTION_APPROVED( LocalDate.of( 1787 , 9 , 17 ) )
;
private LocalDate localDate ;
// Constructor
public History( LocalDate ld ) {
Objects.requireNonNull( ld ) ;
this.localDate = ld ;
}
// Getter
public LocalDate getLocalDate() {
return this.localDate ;
}
}
要使用此枚举,请在已命名的常量实例之一上调用实例方法。
LocalDate ld = History.US_DECLARATION_OF_INDEPENDENCE.getLocalDate() ;