问题描述
@Target(ElementType.TYPE)@Retention(RetentionPolicy.SOURCE)public @interface RelatedPacket {String []value();}@RelatedPacket({"EATickSN"})public enum EQTickSN {StationID,GameID,Issue;public static GLBody<EQTickSN> newGLBody() {return new GLBody<EQTickSN>(EQTickSN.values().length);}}@RelatedPacket({"EQTickSN","TickSN"})public enum EATickSN {StationID,GameID,Issue,TickSN;public static GLBody<EATickSN> newGLBody() {return new GLBody<EATickSN>(EATickSN.values().length);}}
解决方案
@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: * ElemenetType.CONSTRUCTOR 构造器声明 * ElemenetType.FIELD 域声明(包括 enum 实例) * ElemenetType.LOCAL_VARIABLE 局部变量声明 * ElemenetType.METHOD 方法声明 * ElemenetType.PACKAGE 包声明 * ElemenetType.PARAMETER 参数声明 * ElemenetType.TYPE 类,接口(包括注解类型)或enum声明 * * @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: * RetentionPolicy.SOURCE 注解将被编译器丢弃 * RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃 * RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。 * * @Documented 将此注解包含在 javadoc 中 * * @Inherited 允许子类继承父类中的注解 你定义了一个注解RelatedPacket,大括号里的值为 定义注解values