File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Enum - Constant Specific Body

 
Jisha Anand
Ranch Hand
Posts: 62
Flex Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear All,

Enum is again troubling me

I have seen that we can overload a method in enums. Also, I have seen that we can define a method in an enum and overload the method (change the args) in constant specific body. This compiles fine. But when I try to call the method defined in consant specific body the compiler complains. Why is this so?

The following is my code. The line in bold creates the issue

public enum Seasons {

SUMMER(10),
WINTER {
public int getSeasonValue() {
return 100;
}
},
AUTUMN {
public int abc = 1999;
public int getSeasonValue(int x) {
return 20;
}
},
SPRING;

private int seasonValue;

Seasons(int x) {
seasonValue = x;
}

Seasons() {
}

public int getSeasonValue() {
return seasonValue;
}
public static void main(String args[]) {
Season season = new Season();
System.out.println("SUMMER: "+season.seasonS.getSeasonValue());
System.out.println("WINTER: "+season.seasonW.getSeasonValue());
System.out.println("AUTUMN: "+season.seasonA.getSeasonValue(10));
}
}

class Season {
Seasons seasonS = Seasons.SUMMER;
Seasons seasonW = Seasons.WINTER;
Seasons seasonA = Seasons.AUTUMN;
}
 
Ankit Garg
Sheriff
Posts: 9495
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well the answer is simple, the methods that you define in enum specific body are like methods in anonymous inner classes. So you can only call the methods available in the enum just like you can only call the methods available in the super class of an anonymous inner class

 
Jisha Anand
Ranch Hand
Posts: 62
Flex Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Got it; thanks a lot Ankit..

Even if the method is declared public there is no way to access the method outside the class..same with enum right?
 
Rob Spoor
Sheriff
Pie
Posts: 20369
44
Chrome Eclipse IDE Java Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Right.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic