JAVA注解编程

来源:互联网 发布:淘宝如何代销 编辑:程序博客网 时间:2024/05/23 01:26
一个简单的JAVA注解类
package com.xk.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({ElementType.FIELD})  @Retention(RetentionPolicy.RUNTIME)  public @interface id {}


使用这个JAVA注解类

package com.xk.annotation;public class TestClass {public TestClass(){}@idprivate String testClassId;private String name;public String getTestClassId() {return testClassId;}public void setTestClassId(String testClassId) {this.testClassId = testClassId;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

测试一下:

package com.xk.annotation;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;public class main {public static void main(String[] args) {try {Class clazz = TestClass.class;Object obj = clazz.getConstructor(new Class[]{}).newInstance(new Object[]{});for(Field field : clazz.getDeclaredFields()){id myId = field.getAnnotation(id.class);if(myId!=null){System.out.println(field.getName()+"是ID字段");}else{System.out.println(field.getName()+"非ID字段");}}} catch (IllegalArgumentException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();}}}

输出:

testClassId是ID字段
name非ID字段

原创粉丝点击