JAVA基础-注解

发布于 2024-08-07  400 次阅读


注解

JAVA中对程序做出解释,可以被程序读取,附加在package、class、method等上面

如@override告诉程序此方法是重写的方法,限制了方法名和参数必须和父类一致

内置注解

@SuppressWarnings("ALL") //镇压警告
public class Neizhi {
    public static void main(String a[]){
        System.out.println(new Neizhi().toString());
        test();
    }
    @Override
    public String toString(){
        return "Override";
    }

    @Deprecated //表示不推荐使用,在新版本被废弃,但是还是可以用
    public static void test(){
        System.out.println("Deprecated");
    }

}

image_mak

元注解

负责解释其他注解的注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class Yuan {
    @Myannotation
    public void test(){
    }

}

@Target(value = ElementType.METHOD) //Target限制该注解解释的类型,如限制只能解释方法
@Retention(value = RetentionPolicy.RUNTIME) //Retention表示该注解解释的级别,RUNTIME(运行时级别)>CLASS>SOURCE(源码级别)
@interface Myannotation{ //定义注解的方法

}

自定义注解

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

public class ZiDingYi {
    @testanno(age = 18,name = "mak",id = 1,schools = {"杭电"})
    public void test(){}
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface testanno{
    // 自定义的注解中,声明方法=配置参数
    // 方法的名称就是参数的名称
    String name() default "";
    int age() default 0;
    int id() default -1;
    String[] schools() default {"清华大学","北京大学"};
}
A web ctfer from 0RAYS
最后更新于 2024-08-24