[threeten-dev] Issues for some methods in ChronoField
Stephen Colebourne
scolebourne at joda.org
Fri May 10 03:19:48 PDT 2013
The enum constant name is available via name() as with all enums.
getName() is a mixed case variant. By taking control of the
toString(), we ensure that all implementations (enum or non-enum) have
a consistent toString.
Stephen
On 10 May 2013 04:50, Patrick Zhang <patrick.zhang at oracle.com> wrote:
> Hi Team,
>
> It looks the valueOf(String name), getName() and toString() are
> incompatible.
> For example,
> ===========
> System.out.println(ChronoField.SECOND_OF_DAY.getName());
> System.out.println(ChronoField.SECOND_OF_DAY.toString());
> ===========
> Both of them will print "SecondOfDay".
>
> But if you try below, it will throw exception:
> System.out.println(ChronoField.valueOf("SecondOfDay"));
>
> FYI, below code works well:
> System.out.println(ChronoField.valueOf("SECOND_OF_DAY"));
>
>
> Personally I do not think it make sense. As one application engineer, I
> would believe below code should work:
> =========
> for(ChronoField field: ChronoField.values()){
> assertEquals(ChronoField.valueOf(field.getName()), field);
> }
> =========
>
> Regards
> Patrick
More information about the threeten-dev
mailing list