| .class public final enum LEnum; |
| .super Ljava/lang/Enum; |
| |
| #This class is an example of how to define an enum. You have |
| #to do all of the work that java normally takes care of |
| |
| .field private static final synthetic $VALUES:[LEnum; |
| |
| .field public static final enum VALUE1:LEnum; |
| .field public static final enum VALUE2:LEnum; |
| |
| .method static constructor <clinit>()V |
| .registers 4 |
| |
| #create an instance of this class for the VALUE1 value |
| new-instance v0, LEnum; |
| const-string v1, "VALUE1" |
| const/4 v2, 0 |
| invoke-direct {v0, v1, v2}, LEnum;-><init>(Ljava/lang/String;I)V |
| |
| #and store it in VALUE1 |
| sput-object v0, LEnum;->VALUE1:LEnum; |
| |
| #create an instance of this class for the VALUE2 value |
| new-instance v0, LEnum; |
| const-string v1, "VALUE2" |
| const/4 v3, 1 |
| invoke-direct {v0, v1, v3}, LEnum;-><init>(Ljava/lang/String;I)V |
| |
| #and store it in VALUE2 |
| sput-object v0, LEnum;->VALUE2:LEnum; |
| |
| #create an array of Enums, for the $VALUES member |
| const/4 v0, 2 |
| new-array v0, v0, [LEnum; |
| |
| #add VALUE1 to the array |
| sget-object v1, LEnum;->VALUE1:LEnum; |
| aput-object v1, v0, v2 |
| |
| #add VALUE2 to the array |
| sget-object v1, LEnum;->VALUE2:LEnum; |
| aput-object v1, v0, v3 |
| |
| #and store the array in $VALUES |
| sput-object v0, LEnum;->$VALUES:[LEnum; |
| |
| return-void |
| .end method |
| |
| .method private constructor <init>(Ljava/lang/String;I)V |
| .registers 3 |
| invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V |
| return-void |
| .end method |
| |
| .method public static valueof(Ljava/lang/String;)LEnum; |
| .registers 2 |
| const-class v0, LEnum; |
| invoke-static {v0, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; |
| move-result-object v1 |
| check-cast v1, LEnum; |
| return-object v1 |
| .end method |
| |
| .method public static values()[LEnum; |
| .registers 1 |
| sget-object v0, LEnum;->$VALUES:[LEnum; |
| invoke-virtual {v0}, [LEnum;->clone()Ljava/lang/Object; |
| move-result-object v0 |
| check-cast v0, [LEnum; |
| return-object v0 |
| .end method |