1、自定义注解
上篇博客中介绍了注解的基础知识
http://blog.youkuaiyun.com/androidxiaogang/article/details/51539132
这次学习自定义注解
定义新的Annotation类型使用@interface关键字修饰,与接口非常相似。
一下是一个简单的注解
package com.example.test;
public @interface Test {
}
定义了Annotation之后,就可以在任何程序的任何地方使用Annotation,使用Annotation的语法类似于public,final这样的修改符。Annotation可以修饰任何程序的元素,包括类,接口,方法等。
package com.example.test;
@Test
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
2、自定义带参数注解
1、FruitColor注解
package com.example.test;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FruitColor {
public enum Color{blue,red,green};
Color fruitColor() default Color.green;
}
2、FruitName注解
package com.example.test;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FruitName {
String value() default "";
}
3、标注
package com.example.test;
import com.example.test.FruitColor.Color;
public class Apple {
@FruitName("Apple")
private String appleName;
@FruitColor(fruitColor = Color.green)
private String appleColor;
}