java annotation
来源:互联网 发布:基于栈的列表 java 编辑:程序博客网 时间:2024/05/18 01:44
1. java annotation是什么?有什么作用?
自从java 1.5(代号tiger,1.6代号为mustang)引入annotation以后,java annontation就被广泛的使用了,很多java框架也紧跟潮流,例如Junit、Struts、Spring等流行工具框架中均广泛使用了annontion。 Spring 2.5提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置.
Annotation语法,除了@符号的使用外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang.annotation包。
Annotation可以被编译为近class文件的,也可以在运行时被虚拟机获得,从而影响运行时行为。
Annotation一般作为一种辅助途径,应用在软件框架或工具中,在这些工具类中根据不同的 annontation注解信息采取不同的处理过程或改变相应程序元素(类、方法及成员变量等)的行为
2.如何自定义annotation?
自定义annotation
package annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MyAnnotation {public String value() default "hello annotation";}
测试annotation
package annotation;import java.lang.reflect.Method;public class TestAnno { @MyAnnotation(value = "I am annotation for method_1") public static void method_1(){ System.out.println("I am method_1"); } @MyAnnotation() public static void method_2(){ System.out.println("I am method_2"); }public static void main(String[] args) { method_1(); method_2(); // 利用反射机制得到方法的annotation Method[] methods = TestAnno.class.getDeclaredMethods(); for(Method method : methods ){ boolean hasAnnotation = method.isAnnotationPresent(MyAnnotation.class); if(hasAnnotation){ MyAnnotation annotation = method.getAnnotation(MyAnnotation.class); System.out.println("metod: " + method.getName() + " ; annotation content: " + annotation.toString() + " annotation value:" + annotation.value()); } } }}
- JAVA Annotation & 自定义Annotation
- java Annotation Annotation elements
- Java Annotation
- Java Annotation
- Java Annotation
- Java Annotation
- Java Annotation
- java annotation
- Java Annotation
- Java Annotation
- Java Annotation
- Java Annotation
- JAVA [ Annotation]
- Java Annotation
- java annotation
- Java annotation
- Java Annotation
- JAVA --Annotation
- Axure RP:页面原型制作工具
- UVA 662 Fast Food
- Actor Framework for Windows Azure
- Android开发 MeasureSpec介绍
- The last work of this year - 2012
- java annotation
- POJ_1573题解
- chrome学习
- SSL证书
- using vector to implement buffer
- CF Round#17
- 对成功游戏的看法
- 25.写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
- 26.左旋转字符串