| ClassFileAnalyzer (Can) |
| Home |
|
Example: TestCanRuntimeInvisibleAnnotations2Test directive
/* TestCanRuntimeInvisibleAnnotations.java */
import java.lang.annotation.*;
@Documented
@Retention(value = RetentionPolicy.CLASS)
@Target(value = { ElementType.TYPE, ElementType.FIELD, ElementType.METHOD })
public @interface TestCanRuntimeInvisibleAnnotations {
int id();
String surname();
String forename();
}
/* TestCanRuntimeVisibleAnnotations.java */
import java.lang.annotation.*;
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.TYPE, ElementType.FIELD, ElementType.METHOD })
public @interface TestCanRuntimeVisibleAnnotations {
int id();
String surname();
String forename();
}
/* TestCanRuntimeInvisibleAnnotations2.java */
import java.lang.annotation.*;
@TestCanRuntimeInvisibleAnnotations(id = 1,
surname = "Java",
forename = "Can")
@TestCanRuntimeVisibleAnnotations(id = 1,
surname = "World!",
forename = "Hello")
public class TestCanRuntimeInvisibleAnnotations2 {
@Retention(value = RetentionPolicy.CLASS)
@Target(value = { ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.FIELD,
ElementType.LOCAL_VARIABLE,
ElementType.METHOD,
ElementType.PACKAGE,
ElementType.PARAMETER,
ElementType.TYPE })
public @interface Annotation1 {
byte byteValue() default 1;
char[] charValue() default { 'a', 'b' };
double doubleValue();
float floatValue();
int[] intValue();
long longValue();
short shortValue();
boolean[] booleanValue();
String[] stringValue();
}
@Retention(value = RetentionPolicy.CLASS)
@Target(value = { ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.FIELD,
ElementType.LOCAL_VARIABLE,
ElementType.METHOD,
ElementType.PACKAGE,
ElementType.PARAMETER,
ElementType.TYPE })
public @interface Annotation2 {
enum Direction { NORTH, SOUTH, WEST, EAST };
Direction value1();
Class value2();
Class<? extends Number>[] value3() default Integer.class;
}
@Retention(value = RetentionPolicy.CLASS)
@Target(value = { ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.FIELD,
ElementType.LOCAL_VARIABLE,
ElementType.METHOD,
ElementType.PACKAGE,
ElementType.PARAMETER,
ElementType.TYPE })
public @interface Annotation3 {
Annotation1[] value1() default {
@Annotation1(byteValue = 1, intValue = 4),
@Annotation1(charValue = { 'a', 'b' }, booleanValue = { true }),
@Annotation1(floatValue = 1.23f, stringValue = { "Hello", "Can!" })};
Annotation2[] value2() default {
@Annotation2(value1 =
TestCanRuntimeInvisibleAnnotations2.Annotation2.Direction.NORTH,
value2 = Object.class,
value3 = { Byte.class, Integer.class }),
@Annotation2(value1 =
TestCanRuntimeInvisibleAnnotations2.Annotation2.Direction.SOUTH,
value2 = StringBuffer.class,
value3 = { Float.class, Double.class })};
}
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.FIELD,
ElementType.LOCAL_VARIABLE,
ElementType.METHOD,
ElementType.PACKAGE,
ElementType.PARAMETER,
ElementType.TYPE })
public @interface Annotation4 {
byte byteValue();
String[] stringValue();
}
@Annotation1(byteValue = 1,
charValue = { 'a', 'b', 'c' },
doubleValue = 1.23,
floatValue = 4.56f,
intValue = { 2, 3, 4 },
longValue = 5,
shortValue = 6,
booleanValue = { true },
stringValue = { "Hello World!" })
@Annotation4(byteValue = 1,
stringValue = { "Hello World!" })
String str = "Hello";
@Annotation2(value1 =
TestCanRuntimeInvisibleAnnotations2.Annotation2.Direction.NORTH,
value2 = Object.class,
value3 = { Byte.class, Integer.class })
@Annotation4(byteValue = 1,
stringValue = { "Hello World!" })
public void method1(String s) {
System.out.println(str + s);
}
@Annotation3(
value1 = { @Annotation1(byteValue = 1,
charValue = { 'a', 'b' },
doubleValue = 1.23,
floatValue = 4.56f,
intValue = { 2, 3, 4},
longValue = 5,
shortValue = 6,
booleanValue = { true, false },
stringValue = { "Hello", "Can!" }),
@Annotation1(byteValue = 2,
charValue = { 'c', 'd' }),
@Annotation1(byteValue = 3) },
value2 = { @Annotation2(value1 =
TestCanRuntimeInvisibleAnnotations2.Annotation2.Direction.NORTH,
value2 = Object.class,
value3 = { Byte.class, Integer.class }),
@Annotation2(value1 =
TestCanRuntimeInvisibleAnnotations2.Annotation2.Direction.SOUTH,
value2 = StringBuffer.class,
value3 = { Float.class, Double.class })})
@TestCanRuntimeVisibleAnnotations(id = 2,
surname = "World!",
forename = "Hello")
public static void main(String[] args) {
TestCanRuntimeInvisibleAnnotations2 tcria =
new TestCanRuntimeInvisibleAnnotations2();
tcria.method1(" Java!");
}
}
> javac TestCanRuntimeInvisibleAnnotations.java
> javac TestCanRuntimeVisibleAnnotations.java
> javac TestCanRuntimeInvisibleAnnotations2.java
> java ClassFileAnalyzer TestCanRuntimeInvisibleAnnotations.class
> java ClassFileAnalyzer TestCanRuntimeVisibleAnnotations.class
> java ClassFileAnalyzer TestCanRuntimeInvisibleAnnotations2.class
> java ClassFileAnalyzer TestClaraRuntimeInvisibleAnnotations2$Annotation1.class
> java ClassFileAnalyzer TestClaraRuntimeInvisibleAnnotations2$Annotation2.class
> java ClassFileAnalyzer TestClaraRuntimeInvisibleAnnotations2$Annotation3.class
> java ClassFileAnalyzer TestClaraRuntimeInvisibleAnnotations2$Annotation4.class
> java ClassFileAnalyzer
TestClaraRuntimeInvisibleAnnotations2$Annotation2$Direction.class
; TestCanRuntimeInvisibleAnnotations.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations.java
.interface public abstract annotation TestCanRuntimeInvisibleAnnotations
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Documented;
.end annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = CLASS
.end annotation
.annotation visible Ljava/lang/annotation/Target;
value [e Ljava/lang/annotation/ElementType; = TYPE FIELD METHOD
.end annotation
.method public abstract id()I
.end method
.method public abstract surname()Ljava/lang/String;
.end method
.method public abstract forename()Ljava/lang/String;
.end method
; TestCanRuntimeVisibleAnnotations.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeVisibleAnnotations.java
.interface public abstract annotation TestCanRuntimeVisibleAnnotations
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Documented;
.end annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = RUNTIME
.end annotation
.annotation visible Ljava/lang/annotation/Target;
value [e Ljava/lang/annotation/ElementType; = TYPE FIELD METHOD
.end annotation
.method public abstract id()I
.end method
.method public abstract surname()Ljava/lang/String;
.end method
.method public abstract forename()Ljava/lang/String;
.end method
; TestCanRuntimeInvisibleAnnotations2.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
.class public TestCanRuntimeInvisibleAnnotations2
.super java/lang/Object
.annotation visible LTestCanRuntimeVisibleAnnotations;
id I = 1
surname s = "World!"
forename s = "Hello"
.end annotation
.annotation invisible LTestCanRuntimeInvisibleAnnotations;
id I = 1
surname s = "Java"
forename s = "Can"
.end annotation
; one line
.inner interface public static abstract annotation Annotation4
inner TestCanRuntimeInvisibleAnnotations2$Annotation4
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner interface public static abstract annotation Annotation3
inner TestCanRuntimeInvisibleAnnotations2$Annotation3
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner interface public static abstract annotation Annotation2
inner TestCanRuntimeInvisibleAnnotations2$Annotation2
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner interface public static abstract annotation Annotation1
inner TestCanRuntimeInvisibleAnnotations2$Annotation1
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner class public static final enum Direction
inner TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
outer TestCanRuntimeInvisibleAnnotations2$Annotation2
.field str Ljava/lang/String;
.annotation visible LTestCanRuntimeInvisibleAnnotations2$Annotation4;
byteValue B = 1
stringValue [s = "Hello World!"
.end annotation
.annotation invisible LTestCanRuntimeInvisibleAnnotations2$Annotation1;
byteValue B = 1
charValue [C = 97 98 99
doubleValue D = 1.23
floatValue F = 4.56
intValue [I = 2 3 4
longValue J = 5
shortValue S = 6
booleanValue [Z = 1
stringValue [s = "Hello World!"
.end annotation
.end field
.method public <init>()V
.limit stack 2
.limit locals 1
.line 12
0: aload_0
1: invokespecial java/lang/Object/<init>()V
.line 96
4: aload_0
5: ldc "Hello"
7: putfield TestCanRuntimeInvisibleAnnotations2/str Ljava/lang/String;
10: return
.end method
.method public method1(Ljava/lang/String;)V
.limit stack 3
.limit locals 2
.line 117
0: getstatic java/lang/System/out Ljava/io/PrintStream;
3: new java/lang/StringBuilder
6: dup
7: invokespecial java/lang/StringBuilder/<init>()V
10: aload_0
11: getfield TestCanRuntimeInvisibleAnnotations2/str Ljava/lang/String;
; one line
14: invokevirtual
java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: aload_1
; one line
18: invokevirtual
java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String;
24: invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
.line 118
27: return
.annotation visible LTestCanRuntimeInvisibleAnnotations2$Annotation4;
byteValue B = 1
stringValue [s = "Hello World!"
.end annotation
.annotation invisible LTestCanRuntimeInvisibleAnnotations2$Annotation2;
value1 e LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction; = NORTH
value2 c = Ljava/lang/Object;
value3 [c = Ljava/lang/Byte; Ljava/lang/Integer;
.end annotation
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 2
.line 146
0: new TestCanRuntimeInvisibleAnnotations2
3: dup
4: invokespecial TestCanRuntimeInvisibleAnnotations2/<init>()V
7: astore_1
.line 148
8: aload_1
9: ldc " Java!"
; one line
11: invokevirtual
TestCanRuntimeInvisibleAnnotations2/method1(Ljava/lang/String;)V
.line 149
14: return
.annotation visible LTestCanRuntimeVisibleAnnotations;
id I = 2
surname s = "World!"
forename s = "Hello"
.end annotation
.annotation invisible LTestCanRuntimeInvisibleAnnotations2$Annotation3;
value1 [@ LTestCanRuntimeInvisibleAnnotations2$Annotation1; = .annotation
byteValue B = 1
charValue [C = 97 98
doubleValue D = 1.23
floatValue F = 4.56
intValue [I = 2 3 4
longValue J = 5
shortValue S = 6
booleanValue [Z = 1 0
stringValue [s = "Hello" "Can!"
.end annotation
.annotation
byteValue B = 2
charValue [C = 99 100
.end annotation
.annotation
byteValue B = 3
.end annotation
value2 [@ LTestCanRuntimeInvisibleAnnotations2$Annotation2; = .annotation
value1 e LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction; = NORTH
value2 c = Ljava/lang/Object;
value3 [c = Ljava/lang/Byte; Ljava/lang/Integer;
.end annotation
.annotation
value1 e LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction; = SOUTH
value2 c = Ljava/lang/StringBuffer;
value3 [c = Ljava/lang/Float; Ljava/lang/Double;
.end annotation
.end annotation
.end method
; TestCanRuntimeInvisibleAnnotations2$Annotation1.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
;one line
.interface public abstract annotation
TestCanRuntimeInvisibleAnnotations2$Annotation1
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = CLASS
.end annotation
.annotation visible Ljava/lang/annotation/Target;
;one line
value [e Ljava/lang/annotation/ElementType; = ANNOTATION_TYPE CONSTRUCTOR
FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
.end annotation
;one line
.inner interface public static abstract annotation Annotation1
inner TestCanRuntimeInvisibleAnnotations2$Annotation1
outer TestCanRuntimeInvisibleAnnotations2
.method public abstract byteValue()B
.annotation default
B = 1
.end annotation
.end method
.method public abstract charValue()[C
.annotation default
[C = 97 98
.end annotation
.end method
.method public abstract doubleValue()D
.end method
.method public abstract floatValue()F
.end method
.method public abstract intValue()[I
.end method
.method public abstract longValue()J
.end method
.method public abstract shortValue()S
.end method
.method public abstract booleanValue()[Z
.end method
.method public abstract stringValue()[Ljava/lang/String;
.end method
; TestCanRuntimeInvisibleAnnotations2$Annotation2.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
; one line
.interface public abstract annotation
TestCanRuntimeInvisibleAnnotations2$Annotation2
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = CLASS
.end annotation
.annotation visible Ljava/lang/annotation/Target;
; one line
value [e Ljava/lang/annotation/ElementType; = ANNOTATION_TYPE CONSTRUCTOR
FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
.end annotation
; one line
.inner interface public static abstract annotation Annotation2
inner TestCanRuntimeInvisibleAnnotations2$Annotation2
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner class public static final enum Direction
inner TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
outer TestCanRuntimeInvisibleAnnotations2$Annotation2
; one line
.method public abstract
value1()LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
.end method
.method public abstract value2()Ljava/lang/Class;
.end method
.method public abstract value3()[Ljava/lang/Class;
.annotation default
[c = Ljava/lang/Integer;
.end annotation
.signature "()[Ljava/lang/Class<+Ljava/lang/Number;>;"
.end method
; TestCanRuntimeInvisibleAnnotations2$Annotation3.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
; one line
.interface public abstract annotation
TestCanRuntimeInvisibleAnnotations2$Annotation3
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = CLASS
.end annotation
.annotation visible Ljava/lang/annotation/Target;
; one line
value [e Ljava/lang/annotation/ElementType; = ANNOTATION_TYPE CONSTRUCTOR
FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
.end annotation
; one line
.inner interface public static abstract annotation Annotation1
inner TestCanRuntimeInvisibleAnnotations2$Annotation1
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner interface public static abstract annotation Annotation2
inner TestCanRuntimeInvisibleAnnotations2$Annotation2
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner class public static final enum Direction
inner TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
outer TestCanRuntimeInvisibleAnnotations2$Annotation2
; one line
.inner interface public static abstract annotation Annotation3
inner TestCanRuntimeInvisibleAnnotations2$Annotation3
outer TestCanRuntimeInvisibleAnnotations2
.method public abstract value1()[LTestCanRuntimeInvisibleAnnotations2$Annotation1;
.annotation default
[@ LTestCanRuntimeInvisibleAnnotations2$Annotation1; = .annotation
byteValue B = 1
intValue [I = 4
.end annotation
.annotation
charValue [C = 97 98
booleanValue [Z = 1
.end annotation
.annotation
floatValue F = 1.23
stringValue [s = "Hello" "Can!"
.end annotation
.end annotation
.end method
.method public abstract value2()[LTestCanRuntimeInvisibleAnnotations2$Annotation2;
.annotation default
[@ LTestCanRuntimeInvisibleAnnotations2$Annotation2; = .annotation
value1 e LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction; = NORTH
value2 c = Ljava/lang/Object;
value3 [c = Ljava/lang/Byte; Ljava/lang/Integer;
.end annotation
.annotation
value1 e LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction; = SOUTH
value2 c = Ljava/lang/StringBuffer;
value3 [c = Ljava/lang/Float; Ljava/lang/Double;
.end annotation
.end annotation
.end method
; TestCanRuntimeInvisibleAnnotations2$Annotation4.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
; one line
.interface public abstract annotation
TestCanRuntimeInvisibleAnnotations2$Annotation4
; Flag ACC_SUPER not set, see JVM spec
.super java/lang/Object
.implements java/lang/annotation/Annotation
.annotation visible Ljava/lang/annotation/Retention;
value e Ljava/lang/annotation/RetentionPolicy; = RUNTIME
.end annotation
.annotation visible Ljava/lang/annotation/Target;
; one line
value [e Ljava/lang/annotation/ElementType; = ANNOTATION_TYPE CONSTRUCTOR
FIELD LOCAL_VARIABLE METHOD PACKAGE PARAMETER TYPE
.end annotation
; one line
.inner interface public static abstract annotation Annotation4
inner TestCanRuntimeInvisibleAnnotations2$Annotation4
outer TestCanRuntimeInvisibleAnnotations2
.method public abstract byteValue()B
.end method
.method public abstract stringValue()[Ljava/lang/String;
.end method
; TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction.j
; Generated by ClassFileAnalyzer (Can)
; Analyzer and Disassembler for Java class files
; (Jasmin syntax 2, http://jasmin.sourceforge.net)
;
; ClassFileAnalyzer, version 0.7.0
.bytecode 50.0
.source TestCanRuntimeInvisibleAnnotations2.java
.class public final enum TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
.super java/lang/Enum
; one line
.signature
"Ljava/lang/Enum<LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;>;"
; one line
.inner interface public static abstract annotation Annotation2
inner TestCanRuntimeInvisibleAnnotations2$Annotation2
outer TestCanRuntimeInvisibleAnnotations2
; one line
.inner class public static final enum Direction
inner TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
outer TestCanRuntimeInvisibleAnnotations2$Annotation2
; one line
.field public static final enum
NORTH LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
.field public static final enum
SOUTH LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
.field public static final enum
WEST LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
.field public static final enum
EAST LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
.field private static final synthetic
$VALUES [LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
.method public static
values()[LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
.limit stack 1
.limit locals 0
.line 47
; one line
0: getstatic
TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/$VALUES
[LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
; one line
3: invokevirtual
[LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
/clone()Ljava/lang/Object;
6: checkcast [LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
9: areturn
.end method
; one line
.method public static
valueOf(Ljava/lang/String;)LTestCanRuntimeInvisibleAnnotations2$
Annotation2$Direction;
.limit stack 2
.limit locals 1
.line 47
0: ldc_w "TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction"
3: aload_0
; one line
4: invokestatic
java/lang/Enum/valueOf(Ljava/lang/Class;Ljava/lang/String;)
Ljava/lang/Enum;
7: checkcast TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
10: areturn
.end method
.method private <init>(Ljava/lang/String;I)V
.limit stack 3
.limit locals 3
.line 47
0: aload_0
1: aload_1
2: iload_2
3: invokespecial java/lang/Enum/<init>(Ljava/lang/String;I)V
6: return
.signature "()V"
.end method
.method static <clinit>()V
.limit stack 4
.limit locals 0
.line 47
0: new TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
3: dup
4: ldc "NORTH"
6: iconst_0
; one line
7: invokespecial
TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/<init>
(Ljava/lang/String;I)V
; one line
10: putstatic
TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/NORTH
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
13: new TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
16: dup
17: ldc "SOUTH"
19: iconst_1
; one line
20: invokespecial
TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/<init>
(Ljava/lang/String;I)V
; one line
23: putstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/SOUTH
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
26: new TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
29: dup
30: ldc "WEST"
32: iconst_2
; one line
33: invokespecial TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/
<init>(Ljava/lang/String;I)V
; one line
36: putstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/WEST
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
39: new TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
42: dup
43: ldc "EAST"
45: iconst_3
; one line
46: invokespecial TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/
<init>(Ljava/lang/String;I)V
; one line
49: putstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/EAST
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
52: iconst_4
53: anewarray TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction
56: dup
57: iconst_0
; one line
58: getstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/NORTH
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
61: aastore
62: dup
63: iconst_1
; one line
64: getstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/SOUTH
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
67: aastore
68: dup
69: iconst_2
; one line
70: getstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/WEST
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
73: aastore
74: dup
75: iconst_3
; one line
76: getstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/EAST
LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
79: aastore
; one line
80: putstatic TestCanRuntimeInvisibleAnnotations2$Annotation2$Direction/$VALUES
[LTestCanRuntimeInvisibleAnnotations2$Annotation2$Direction;
83: return
.end method
|