blob: 3cfcb1d917b453d80c81f972084d6861985d4e88 [file] [log] [blame]
.class public LMain;
.super Ljava/lang/Object;
#expected output:
#@ClassAnnotation()
#@MethodAnnotation()
#@FieldAnnotation()
#@ParameterAnnotation()
.method public static main([Ljava/lang/String;)V
.registers 1
invoke-static {}, LMain;->testClassAnnotation()V
invoke-static {}, LMain;->testMethodAnnotation()V
invoke-static {}, LMain;->testFieldAnnotation()V
const-string v0, ""
invoke-static {v0}, LMain;->testParameterAnnotation(Ljava/lang/String;)V
return-void
.end method
.annotation runtime LClassAnnotation;
.end annotation
.method public static testClassAnnotation()V
.registers 3
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-class v1, LMain;
const-class v2, LClassAnnotation;
invoke-virtual {v1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
return-void
.end method
.method public static testMethodAnnotation()V
.registers 4
.annotation runtime LMethodAnnotation;
.end annotation
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-class v1, LMain;
const-string v2, "testMethodAnnotation"
const/4 v3, 0
new-array v3, v3, [Ljava/lang/Class;
invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
const-class v2, LMethodAnnotation;
invoke-virtual {v1, v2}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
return-void
.end method
.field public static fieldAnnotationTest:Ljava/lang/Object;
.annotation runtime LFieldAnnotation;
.end annotation
.end field
.method public static testFieldAnnotation()V
.registers 3
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-class v1, LMain;
const-string v2, "fieldAnnotationTest"
invoke-virtual {v1, v2}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v1
const-class v2, LFieldAnnotation;
invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
return-void
.end method
.method public static testParameterAnnotation(Ljava/lang/String;)V
.registers 6
.param p0 # Ljava/lang/String;
.annotation runtime LParameterAnnotation;
.end annotation
.end param
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-class v1, LMain;
const-string v2, "testParameterAnnotation"
const/4 v3, 1
new-array v3, v3, [Ljava/lang/Class;
const-class v4, Ljava/lang/String;
const/4 v5, 0
aput-object v4, v3, v5
invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
move-result-object v1
aget-object v1, v1, v5
aget-object v1, v1, v5
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
return-void
.end method