java的注解
2008-12-15 12:39
381 查看
注解其实是一个发展方向,他虽然不能取代xml的地位,但是却能够融合xml的用法,使得代码更加简化,更加的松耦合,使得性能得到最大的提升,故此注解便是一个发展的趋势;
JDK的内置标签:
@Override 用于检查方法名是否正确;
@Deprecated 不赞成使用方法,比如说JDK某个方法过时,便是是用这个标注修饰;
简单写一个例子便于大家理解:
首先是java注解;
他需要先创建一个对应的@interface才能应用;
@Retention(RetentionPolicy.RUNTIME) //必须要写的,保留时间
@Target(ElementType.METHOD) //声明类型
public @interface Nade {
String value() default "秦始皇"; //这个是格式,default后面跟声明类型的值
}
然后再每个方法上都要写上注释,然后可以对他进行判断,他可以通过反射进行方法执行;
@Nade(value="王者韩")
public void setId(int id) {
this.id = id;
}
最后是用反射调用他;
public void testoop() {
Method[] m= User.class.getDeclaredMethods(); //返回方法数组
/*
*刚刚查了下API,getDeclaredMethods()与getMethods()效果一样,不过getDeclaredMethods()
*不包括父类的方法,getMethods()包括父类的方法;
*/
for(int i=0;i<m.length;i++) {
Nade n = m[i].getAnnotation(Nade.class);
System.out.println(n.value());
}
}
写了一个执行拥有注解方法赋值的例子,还算可以吧,凑合着看,重点是理解;
public void testoop() throws Exception {
Method[] m= User.class.getDeclaredMethods();
User u= User.class.newInstance();
for(int i=0;i<m.length;i++) {
Nade n = m[i].getAnnotation(Nade.class);
String str= n.value();
if(str.equals("王者韩")) {
m[i].invoke(u, 2);
}
}
System.out.print(u.getId());
}
JDK的内置标签:
@Override 用于检查方法名是否正确;
@Deprecated 不赞成使用方法,比如说JDK某个方法过时,便是是用这个标注修饰;
简单写一个例子便于大家理解:
首先是java注解;
他需要先创建一个对应的@interface才能应用;
@Retention(RetentionPolicy.RUNTIME) //必须要写的,保留时间
@Target(ElementType.METHOD) //声明类型
public @interface Nade {
String value() default "秦始皇"; //这个是格式,default后面跟声明类型的值
}
然后再每个方法上都要写上注释,然后可以对他进行判断,他可以通过反射进行方法执行;
@Nade(value="王者韩")
public void setId(int id) {
this.id = id;
}
最后是用反射调用他;
public void testoop() {
Method[] m= User.class.getDeclaredMethods(); //返回方法数组
/*
*刚刚查了下API,getDeclaredMethods()与getMethods()效果一样,不过getDeclaredMethods()
*不包括父类的方法,getMethods()包括父类的方法;
*/
for(int i=0;i<m.length;i++) {
Nade n = m[i].getAnnotation(Nade.class);
System.out.println(n.value());
}
}
写了一个执行拥有注解方法赋值的例子,还算可以吧,凑合着看,重点是理解;
public void testoop() throws Exception {
Method[] m= User.class.getDeclaredMethods();
User u= User.class.newInstance();
for(int i=0;i<m.length;i++) {
Nade n = m[i].getAnnotation(Nade.class);
String str= n.value();
if(str.equals("王者韩")) {
m[i].invoke(u, 2);
}
}
System.out.print(u.getId());
}
相关文章推荐
- Java和Spring注解基本介绍
- 深入理解Java:注解(Annotation)自定义注解入门
- 深入理解Java:注解(Annotation)自定义注解入门
- Java注解(Annotation)
- Java中的注解是如何工作的?
- Java注解之Retention、Documented、Inherited介绍
- java自定义注解
- java注解
- Java注解导图
- Java注解(初步)
- Java8新特性之重复注解(repeating annotations)浅析
- 深入理解Java:注解(Annotation)基本概念
- spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring
- 2017/2/23 Java SpringAOP拦截Service实现日志管理(自定义注解)
- Java注解Annotation解析
- java之注解开发应用
- 黑马程序员--Java基础加强(4)--- JDK1.5新特性之JavaBean、注解
- 深入理解Java:注解(Annotation)--注解处理器
- java注解实现map与bean之间的转换