什么是声明?java annotation!
什么是annotation?
即java注解,常见的java注解有@overwrite、@Documented等,注解本身对业务逻辑不会产生任何影响,它是描述java语言的元数据。元数据即描述数据的数据。
比如@Documented,表示当前类是否会进入javadoc的注解
开发者自定义annotation
开发者可自定义annotation,方式如下:
@interface:该标识表示“继承java.lang.annotation.Annotation接口”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| public @interface Car{ String kilo(); } public @interface Tool{ String useIt(); } @Tool(useIt="useTool") public class Test { @Car(name = "123km") public String testCar() { return "i am a car!"; } } public static void main(String[] args) { try { Class testClass = Class.forName("com.Test"); boolean flag = testClass.isAnnotationPresent(Tool.class); if(flag) { Method[] methods = testClass.getMethods(); Tool tool = (Tool)testClass.getAnnotation(Tool.class); for(Method method : methods) { if(method.isAnnotationPresent(Car.class)) { Car car = (Car)method.getAnnotation(Car.class); System.out.println(car.kilo()); } } } } catch (ClassNotFoundException e) { e.printStackTrace(); } }
|
Comments