I think the generated method needs to be listed in the class javadoc at
least. I presume it throws an exception too (like the other valueOf) if the
String can't be resolved to a constant, but no user is going to discover
this fact through the documentation.


On Sat, Aug 17, 2013 at 12:32 AM, Nick Williams <
nicholas+open...@nicholaswilliams.net> wrote:

> Oh, yea. Duh. I completely forgot about it being static, which of course
> it would HAVE to be to be useful. Silly me.
>
> Maybe there's a new language feature in there somewhere. Abstract static
> methods? ;-)
>
> Still, yes. I would recommend that the JavaDoc for the Enum class list the
> signature and usage of any/all generated methods.
>
> Nick
>
> On Aug 17, 2013, at 12:28 AM, Eamonn McManus wrote:
>
> > The valueOf method in Enum subclasses is static, so Enum itself can't
> > usefully declare it. But the description of the Enum class could say
> > in text what the generated methods are, rather than referring the
> > reader to the JLS without even a link. If you forget what the methods
> > are you can always look in any enum, such as Thread.State
> > <http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.State.html>,
> > but you shouldn't have to.
> >
> > Éamonn
> >
> >
> > 2013/8/16 Nick Williams <nicholas+open...@nicholaswilliams.net>:
> >> That method doesn't exist in the actual java.lang.Enum base class. It
> gets generated automatically when the enum is compiled and is part of the
> compiled enum class, not part of the Enum base class.
> >>
> >> With that said, I don't disagree that it could use some documentation.
> I've often wondered why java.lang.Enum didn't have the following method
> definition:
> >>
> >> public abstract E valueOf(String name);
> >>
> >> That is essentially the method that all compiled enums implement, it's
> just not actually specified as an abstract method on the base class. If it
> were, then there could be JavaDoc for it.
> >>
> >> Nick
> >>
> >> On Aug 16, 2013, at 11:30 PM, Paul Benedict wrote:
> >>
> >>> I noticed this method is not listed in the Javadocs for 5/6/7/8 but
> it's
> >>> part of every enum. Is this an oversight or is there a good reason why
> it's
> >>> not documented?
> >>>
> >>> --
> >>> Cheers,
> >>> Paul
> >>
>
>


-- 
Cheers,
Paul

Reply via email to