首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA 引语示例详解(二)

2012-12-27 
JAVA 注解示例详解(二)Annotation在java的世界正铺天盖地展开,有空写这一篇简单的annotations的文章,算是

JAVA 注解示例详解(二)

Annotation在java的世界正铺天盖地展开,有空写这一篇简单的annotations的文章,算是关于Annotation入门的文章吧,希望能各位们能抛砖,共同学习......
?? 不讲废话了,实践才是硬道理.
第一部分:了解一下java1.5起默认的三个annotation类型:
?? 一个是@Override:只能用在方法之上的,用来告诉别人这一个方法是改写父类的。
?? 一个是@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上.
?? 一个是@SuppressWarnings:这一个类型可以来暂时把一些警告信息消息关闭.
?? 如果不清楚上面三个类型的具体用法,各位可以baidu或google一下的,很简单的。?

?第二部分:讲一下annotation的概念先,再来讲一下怎样设计自己的annotation.
?? 首先在jdk自带的java.lang.annotation包里,打开如下几个源文件:?
?1、源文件Target.java

 package lighter.iteye.com;  import java.lang.reflect.Method;  import java.util.HashSet;  import java.util.Set;  public class TestAnnotation {/** * author lighter * 说明:具体关天Annotation的API的用法请参见javaDoc文档 */       public static void main(String[] args) throws Exception {       String  CLASS_NAME = "lighter.iteye.com.JavaEyer";       Class  test = Class.forName(CLASS_NAME);       Method[] method = test.getMethods();       boolean flag = test.isAnnotationPresent(Description.class);        if(flag)        {        Description des = (Description)test.getAnnotation(Description.class);        System.out.println("描述:"+des.value());        System.out.println("-----------------");        }                //把JavaEyer这一类有利用到@Name的全部方法保存到Set中去        Set<Method> set = new HashSet<Method>();        for(int i=0;i<method.length;i++)        {        boolean otherFlag = method[i].isAnnotationPresent(Name.class);        if(otherFlag) set.add(method[i]);        }        for(Method m: set)        {        Name name = m.getAnnotation(Name.class);        System.out.println(name.originate());        System.out.println("创建的社区:"+name.community());        }     }}

?5、运行结果:
???? 描述:javaeye,做最棒的软件开发交流社区
???? -----------------
??? 创始人:robbin
??? 创建的社区:javaEye
??? 创始人:江南白衣?
??? 创建的社区:springside

本文摘自:http://www.iteye.com/topic/36659

热点排行