问一下各位高手,在class file里面的annotation是怎么表示的?谢谢 偶看JVMS时好像没有看到...难道是我眼花了... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JVMS都是比较老的了.自己写一个,然后javap -verbose 类名 这样看一下.感觉是接口吧. import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface TestCase { String id() default "[none]";}好像没什么特殊的地方Compiled from "TestCase.java"public interface TestCase extends java.lang.annotation.Annotation{public abstract java.lang.String id();}Compiled from "TestCase.java"public interface TestCase extends java.lang.annotation.Annotation SourceFile: "TestCase.java" RuntimeVisibleAnnotations: length = 0x1B 00 02 00 0B 00 01 00 0C 5B 00 01 65 00 0D 00 0E 00 0F 00 01 00 0C 65 00 10 00 11 minor version: 0 major version: 49 Constant pool:const #1 = class #18; // TestCaseconst #2 = class #19; // java/lang/Objectconst #3 = class #20; // java/lang/annotation/Annotationconst #4 = Asciz id;const #5 = Asciz ()Ljava/lang/String;;const #6 = Asciz AnnotationDefault;const #7 = Asciz [none];const #8 = Asciz SourceFile;const #9 = Asciz TestCase.java;const #10 = Asciz RuntimeVisibleAnnotations;const #11 = Asciz Ljava/lang/annotation/Target;;const #12 = Asciz value;const #13 = Asciz Ljava/lang/annotation/ElementType;;const #14 = Asciz METHOD;const #15 = Asciz Ljava/lang/annotation/Retention;;const #16 = Asciz Ljava/lang/annotation/RetentionPolicy;;const #17 = Asciz RUNTIME;const #18 = Asciz TestCase;const #19 = Asciz java/lang/Object;const #20 = Asciz java/lang/annotation/Annotation;{public abstract java.lang.String id(); AnnotationDefault: length = 0x3 73 00 07 } 会extends java.lang.annotation.Annotation 啊jdk5新东西还不熟悉。 新增东西很有意思.比如enum会继承java.lang.Enum;表面上的引用类型不断增加. 你读的什么书 jvm相关的,我不太喜欢读太厚的,没精力。 看过一点jvm规范,不算厚,不过晦涩. 偶,原来是这样啊,先谢过了...这么说来ZangXT同学你有最新的JVMS啦不拿出来分享,太不厚道了... 现在最想买的是JLS,又怕买了还没看就出新版了,呵呵. class里要annotation做什么。。直接忽略~annotation只要出现在源码里就可以了嘛~嘿嘿 hehe我到觉得JLS不如JVMS那么好看,因为它可以部分满足我的偷窥欲-_-!JLS倒像是一直在限制你这个怎么做,那个怎么做的.... 如果对jvm感兴趣,可以看一下这个东西http://jasmin.sourceforge.net/ jasmin允许你自己使用jvm的指令写类似汇编的代码,然后帮你生成class文件.可以测试一下编译器不给生成的东西. 请教个Java中sql2000的模糊查询问题 新手求教 象棋算法 对“JAVA面试题解惑系列(十一)—这些运算符你是否还记得?”的个人看法 用JS写浮动窗口??????? 求助!!!!java表格问题 就这些分了,请问一台电脑要运行*.jar文件它至少要安装什么软件?谢谢 在线等 如何实现保留2位小数! 心情一不好,就想到这了,散风。 Java 初学者问题。 关于struts2.0的validator问题 Composite模式(高分回答)
自己写一个,然后javap -verbose 类名
这样看一下.感觉是接口吧.
@Retention(RetentionPolicy.RUNTIME)
public @interface TestCase { String id() default "[none]";
}
好像没什么特殊的地方Compiled from "TestCase.java"
public interface TestCase extends java.lang.annotation.Annotation{
public abstract java.lang.String id();}
Compiled from "TestCase.java"
public interface TestCase extends java.lang.annotation.Annotation
SourceFile: "TestCase.java"
RuntimeVisibleAnnotations: length = 0x1B
00 02 00 0B 00 01 00 0C 5B 00 01 65 00 0D 00 0E
00 0F 00 01 00 0C 65 00 10 00 11
minor version: 0
major version: 49
Constant pool:
const #1 = class #18; // TestCase
const #2 = class #19; // java/lang/Object
const #3 = class #20; // java/lang/annotation/Annotation
const #4 = Asciz id;
const #5 = Asciz ()Ljava/lang/String;;
const #6 = Asciz AnnotationDefault;
const #7 = Asciz [none];
const #8 = Asciz SourceFile;
const #9 = Asciz TestCase.java;
const #10 = Asciz RuntimeVisibleAnnotations;
const #11 = Asciz Ljava/lang/annotation/Target;;
const #12 = Asciz value;
const #13 = Asciz Ljava/lang/annotation/ElementType;;
const #14 = Asciz METHOD;
const #15 = Asciz Ljava/lang/annotation/Retention;;
const #16 = Asciz Ljava/lang/annotation/RetentionPolicy;;
const #17 = Asciz RUNTIME;
const #18 = Asciz TestCase;
const #19 = Asciz java/lang/Object;
const #20 = Asciz java/lang/annotation/Annotation;{
public abstract java.lang.String id();
AnnotationDefault: length = 0x3
73 00 07 }
jdk5新东西还不熟悉。
比如enum会继承java.lang.Enum;表面上的引用类型不断增加.
不拿出来分享,太不厚道了...
annotation只要出现在源码里就可以了嘛~嘿嘿
我到觉得JLS不如JVMS那么好看,因为它可以部分满足我的偷窥欲-_-!
JLS倒像是一直在限制你这个怎么做,那个怎么做的....
http://jasmin.sourceforge.net/
可以测试一下编译器不给生成的东西.