1. 程式人生 > >java註解和反射的結合使用

java註解和反射的結合使用

分享 spa tac over ace 註解 [] sys string

首先反射註解,那麽保留策略必須是Runtime,[email protected](RetentionPolicy.RUNTIME)

①定義一個註解類

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface MyAnnotation {
    int value();
}

②在定義一個類使用註解類

public class MyBean {
    @MyAnnotation(20)
    private int value;
    @Override
    
public String toString() { return String.valueOf(value); } }

③在main方法裏面反射註解

public static void main(String[] args) {
        try {
            Field field = MyBean.class.getDeclaredField("value");//獲取成員變量value
            field.setAccessible(true);//將value設置成可訪問的
            if(field.isAnnotationPresent(MyAnnotation.class
)){//判斷成員變量是否有註解 MyAnnotation myAnnotation = field.getAnnotation(MyAnnotation.class);//獲取定義在成員變量中的註解MyAnnotation int value = myAnnotation.value();//獲取定義在MyBean的MyAnnotation裏面屬性值 MyBean myBean=new MyBean(); field.setInt(myBean, value);//將註解的值20可以賦給成員變量value
System.out.println(myBean);//驗證結果 } } catch (Exception e) { e.printStackTrace(); }; }

輸出結果

技術分享

java註解和反射的結合使用