ClassFileAnalyzer (Can)
Home

 

Example: TestCanRuntimeVisibleAnnotations

Test directive .annotation visible

 

/* 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();
}

 

> javac TestCanRuntimeVisibleAnnotations.java
> java ClassFileAnalyzer TestCanRuntimeVisibleAnnotations.class

 

; 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