Annotation:

系统自带注解

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
public class Demo{
    public static void main(String[] args) {
        Test test = new Test();
        test.test(); //使用了不推荐使用的方法
    }
}

//忽略编译期不当的警告
@SuppressWarnings("all")
class Test{
    //表示这个方法不再建议使用;
    @Deprecated
    public void test(){
        System.out.println("方法已经过时");
    }
    //检查此方法是不是覆盖了父类的方法
    @Override
    public String toString() {
        return super.toString();
    }
}

  

自定义注解

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;

public class Demo{
    public static void main(String[] args) throws IllegalAccessException, InstantiationException {
        Class<Cat> catClass = Cat.class;
        //获取类中应用的指定的注解
        MyAnnotation annotation = catClass.getAnnotation(MyAnnotation.class);
        //通过反射获取注解中的值
        String name = annotation.name();
        int age = annotation.age();
        String[] like = annotation.like();
        Color color = annotation.color();

        //实例化对象
        Cat cat = catClass.newInstance();
        cat.setAge(age);
        cat.setColor(color);
        cat.setLike(like);
        cat.setName(name);
        System.out.println(cat);

    }
}

//自定义注解
enum Color{
    red,black;
}
//表示注解再运行时依然存在
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
    public String name();
    public int age() default 10; //给变量设置默认值
    public String[] like(); //定义一个数组变量
    public Color color(); //定义一个枚举变量
}
@MyAnnotation(name="bin",like = {"鱼",},color = Color.black)
class Cat{
    private String name;
    private String[] like;
    private Color color;
    private int age;
    public String getName() {
        return name;
    }

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

    public String[] getLike() {
        return like;
    }

    public void setLike(String[] like) {
        this.like = like;
    }

    public Color getColor() {
        return color;
    }

    public void setColor(Color color) {
        this.color = color;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", like=" + Arrays.toString(like) +
                ", color=" + color +
                ", age=" + age +
                '}';
    }
}

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄