注解反射之自定义注解

自定义注解主要是要掌握四个元注解@Target, @Retention,@Documented,@Inherited,他们的意思分别如下

 

下面是一个具体的例子,注意注释定义中的

String name()
并不是定义一个name方法,而是定义一个name属性,该属性的类型是String
package com.loubin;

import java.lang.annotation.*;

public class Main {
    public static void main(String[] args) {

        User user = new User();
        user.setName("哈哈");
        System.out.println(user.getName());
    }
}

@MyClassAnnotation(name = "User")
class User{
    @MyFieldAnnotation(name = "张三")
    String  name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyClassAnnotation{
    String name();
}

@Target(value = ElementType.FIELD)
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Inherited
@interface MyFieldAnnotation{
    String name();
}

 

定义注解的一些注意事项

 

posted @ 2025-02-07 22:14  地球上最后一个直男  阅读(15)  评论(0)    收藏  举报