Enum.valueOf(String)

Nick Williams nicholas+openjdk at nicholaswilliams.net
Sat Aug 17 05:32:11 UTC 2013


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+openjdk at 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
>> 




More information about the core-libs-dev mailing list