我想要一个功能,让调用者有选择地设置某些字段,但某些 ReadablePartial
实现不会自动“规范化”。例如,如果您在 Partial
类中设置“year”字段,则“year ofera”字段不可读。
我可以处理年、月、日、小时、分钟等字段。是否有任何调用可以对这些字段进行标准化?
我使用Period类中内置的规范化代码想出了以下技巧:
public static void main(String[] args) throws Exception {
Partial pa = new Partial().with(DateTimeFieldType.halfdayOfDay(), 1).with(DateTimeFieldType.hourOfHalfday(), 3)
.with(DateTimeFieldType.minuteOfHour(), 34);
Period pr = new Period(zeroWithMatchingFields(pa), pa);
p(pr.getHours()); // Returns 15
}
public static Partial zeroWithMatchingFields(ReadablePartial in) {
AbstractPartial ap = in instanceof AbstractPartial ? (AbstractPartial) in : new Partial(in);
int[] zeros = new int[ap.size()];
return new Partial(ap.getFieldTypes(), zeros, in.getChronology());
}
我是一名优秀的程序员,十分优秀!