Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

where does enum.values() come from?

 
Thomas Kennedy
Ranch Hand
Posts: 137
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the Sun proficiency assessment for 310-055 there is a code sample thus:

enum Colors{RED,GREEN,BLUE,YELLOW};
public static void main(String[] args){
for(Colors c:Colors.values()){
if(c==Colors.GREEN)...

To my amazement, this compiles. So, OK, I gather enum is a concrete subclass of Enum. Right so far? And it adds the values() method? But where is this documented? I don't see it in the API anywhere.
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24211
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Thomas,

Welcome to JavaRanch!

There are some things, like the "length" pseudo-instance-variable in arrays, or the "class" pseudo-static-variable, or the "this" member, or the "super()" method, that are more part of the language than part of the API, and this is one of them. The primary source for stuff like this is the Java Language Specification, browseable free online in HTML form. The third edition includes enums and other features introduced in Java 5.

Now, reading the JLS is not for everyone -- many people get this information "secondhand" through various Java language textbooks. But the JLS is the go-to book for deciding arguments and impressing your friends.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic