您的位置:首页 > 编程语言 > Java开发

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());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: