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
|