发新话题
打印

JDK1.5新特性之注解功能(实例讲解)

JDK1.5新特性之注解功能(实例讲解)

JDK 1.5添加了注解功能,EJB 3.0少量用到了这一新特性。Java不时有过度依赖XML的嫌疑,注解在减少很多与业务有关的繁琐工作量的同时,也减少了Java对XML的依赖程度,很多信息和配置都可以以注解的方式保存。注解在Java编程中会变得越来越重要越来越常用,从EJB 3.0和JUnit 4可以看出这种趋势来,所以了解和掌握注解的运用是非常有必要的。下面这个程序自定义了两个注解,然后将注解中的信息打印出来,运用下面的代码也可以打印EJB 3.0标准注解的属性,前提是该类运用了相应的注解。
import java.lang.annotation.*;import com.sun.jndi.url.corbaname.corbanameURLContextFactory;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@interface MyType{  String authorName();  String lastModified();  String bugFixes() default "ok";}@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@interface UseCase{  public int id();  public String description() default "no description";}@MyType(authorName="ecy", lastModified="20090329")public class start{ @UseCase(id=1000, description="ecy fu") public void test(){}    public static void main(String args[])  {  start s = new start();    Annotation[] annotation_1;    Class c = start.class;    //获取所有的注解对象  //留意getDeclaredAnnotations方法同下面getAnnotation方法的不同  //getAnnotation可以获取指定的注解  annotation_1 = c.getDeclaredAnnotations();     System.elelen胶原蛋白口服液out.println("=========================================");    if (c.isAnnotationPresent(MyType.class)) {    System.out.println("has annotation...");  }  else {    System.out.println("no annotation...");  }  MyType myType = (MyType) c.getAnnotation(MyType.class);  if (myType != null) {    System.out.println(myType.authorName());    }  System.out.println("=========================================");    for(Annotation an : annotation_1){      System.out.println("类start的注释" + an);    }    Annotation[] annotation_2;    try {    annotation_2 = s.getClass().getMethod("test").getAnnotations();        System.out.println(annotation_2.length);        for (Annotation tag : annotation_2){        System.out.println("Tag is:" + tag);    System.out.println(((UseCase)tag).description() + " : " + ((UseCase)tag).id());    }  } catch (SecurityException e) {    e.printStackTrace();  } catch (NoSuchMethodException e) {    e.printStackTrace();  }  }
jiyizhen-buy.com颈椎保健枕太空记忆枕 igerl.com歌瑞尔内衣

TOP

发新话题