因为枚举是个特殊的类 但他又不是类 它是JDK1.5后出现的一种新机制
枚举也好 注解也好 他们的字节码 实际上是同一类 你可以把枚举看成类似接口的东西
它里面只是实现了抽象方法 和接口不同的是枚举里面要定义具体的实例对象 比如星期
可以定义7个具体对象 从而调用一个叫做nextDay方法
类似的情况在枚举里也有出现
而且注解里属性 也能调用枚举 比如
- import java.lang.annotation.ElementType;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- import java.lang.annotation.Target;
- import com.XXX.EnumTest.TrafficLamp;
- @Retention(RetentionPolicy.RUNTIME)//这个地方就是注解上面加注解 这种注解也称为元注解
- @Target({ElementType.METHOD,ElementType.TYPE})//表示这个注解只能在方法上用
- public @interface anniton {
- String color() default "blue";//指定一个默认的颜色
- String value();
- int[] arrayArr() default {1,2,3};//加一个数组属性
- EnumTest.TrafficLamp lamp() default TrafficLamp.RED ;//枚举的默认值是它的一个实例对象
- Metaan anarr() default @Metaan("xxx");//返回值类型是一个注解
- }
复制代码 |