javaSE注解的学习

javase是基础,注解在我们java学习道路中是很常见的,在座web开发的时候就会用到。

注解的使用方便了我们开发。

 

 

下面就简单演示下注解的定义和对注解中德属性进行赋值并取出来。

 

创建注解类:(MyAnntation)

 

[java][/java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. package com.ydcun.day2;
  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;
  6. import com.ydcun.test;
  7. @Retention(RetentionPolicy.RUNTIME)//注解保留到什么时候
  8. @Target({ElementType.METHOD,ElementType.TYPE})//这个注解放的位置,方法和type
  9. public @interface InMyAnnotation {
  10.     String b() default “aa”;
  11.     int[] arr();
  12.     String value();//单独的时候赋值可以不指定名称
  13.     test.TrefficLamp lamp() default test.TrefficLamp.RED;//用枚举类型
  14.     Elment elment();//用注解类型
  15. }

创建一个类来使用这个注解

 

 

[java][/java]

  1. package com.ydcun.day2;
  2. import javax.annotation.security.RolesAllowed;
  3. import javax.ejb.Remote;
  4. import com.sun.xml.internal.bind.v2.schemagen.xmlschema.Annotated;
  5. @InMyAnnotation(arr=1,value = “ddd”,elment = @Elment(“ydcun”))
  6. public class ZJ {
  7.     @Deprecated
  8.     public void S(){
  9.     }
  10.     @SuppressWarnings(“deprecation”)//过时的继续用
  11.     public static void main(String[] args) {
  12.         System.runFinalizersOnExit(true);//这个是过时的
  13.         if(ZJ.class.isAnnotationPresent(InMyAnnotation.class)){
  14.             InMyAnnotation inMyAnnotation = ZJ.class.getAnnotation(InMyAnnotation.class);//获取到注解,与注解的生命周期有关
  15.             System.out.println(inMyAnnotation);
  16.             System.out.println(inMyAnnotation.arr().length);
  17.             System.out.println(inMyAnnotation.b());
  18.             System.out.println(inMyAnnotation.value());
  19.             System.out.println(inMyAnnotation.lamp().nextLamp().name());
  20.             System.out.println(inMyAnnotation.elment().value());
  21.         }
  22.     }
  23. }

上面最后一个注解型的属性类型定义如下:(Elment)

 

 

 

[java][/java]

  1. package com.ydcun.day2;
  2. public @interface Elment {
  3.     String value();
  4. }

注解这只是定义和给属性复制,后续会有深入应用

标签