编程语言
首页 > 编程语言> > 【狂神说Java】阶段一笔记32. java注解

【狂神说Java】阶段一笔记32. java注解

作者:互联网

1 注解

Java.Annotation

1.1 内置注解

public class Test01 extends Object{
    //重写的注解
    @Override
    public String toString() {
        return super.toString();
    }

    //已过时的,不建议使用
    @Deprecated
    public static void test(){
        System.out.println("Deprecated");
    }
    
    //抑制警告信息
    @SuppressWarnings("all")
    public void test02(){
        List list = new ArrayList();
    }

    public static void main(String[] args) {
        test();
    }
}

1.2 元注解

//测试元注解
//放在类上
@MyAnnotation
public class Test02 {
    //放在方法上
    @MyAnnotation
    public void test(){
    }
}

//定义一个注解
//Target:表示我们的注解可以放在那些地方
@Target(value = {ElementType.METHOD, ElementType.TYPE})

//Retention:表示我们的注解在什么地方有效
@Retention(value = RetentionPolicy.RUNTIME)

@Documented
@Inherited
@interface MyAnnotation{

}

1.3 自定义注解

//自定义注解
public class Test03 {
    //注解可以显式赋值,如果没有默认值,我们就必须给注解赋值
    @MyAnnotation2(age = 18, name = "秦将", schools = {"西北大学"})
    public void test(){}

    @MyAnnotation3("秦将") //省略value
    public void test2(){}
}

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //注解的参数:参数类型 + 参数名();
    String name() default "";
    int age() default 0;
    int id() default -1; //如果默认值为-1,代表不存在;indexof:如果找不到就返回-1

    String[] schools() default {"西部开源"};
}

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3{
    String value();
}

PS:学习自狂神说java

标签:Java,SuppressWarnings,java,32,void,value,注解,public
来源: https://blog.csdn.net/Yy_sushine/article/details/113762401