“@”Java中特殊的符号——注解

  • 在Java中经常看到这样的代码
        @Log4j2
        @Component
  • 什么是注解?(知乎)

       注解annotation是JavaSE5.0中新增功能。可以理解为注解是一种标记,这种标记可以在

编译、类加载、运行时被读取,并执行相应的处理。

它可以添加到程序的任何元素上:包声明、类型声明、构造方法、普通方法、成员变量、参数。

基本注解

  • Override

        用于标识方法,标识该方法属于重写父类的方法 。此注解表面是重写父类的方法,只能用于方法上,并且用于编译阶段,我们在开发的时候,如果注解使用不当,在源码编译时立马就会做出提示。        

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
  • SafeVarargs

        @SafeVarargs注解是在JDK7中引入的。此注解适用于接受varargs参数的final和static方法或构造函数。此注解用于确保方法不会对其varargs参数执行不安全的操作。从Java9开始,也适用于私有实例方法。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
public @interface SafeVarargs {}
  • SuppressWarnings

        用于有选择的关闭编译器对类、方法、成员变量、变量初始化的警告。

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
     String[] value();
}
  • FunctionalInterface

        JDK8新增注解。@FunctionalInterface标记在接口上,“函数式接口”是指仅仅只包含一个抽象方法的接口。该注解只能标记在”有且仅有一个抽象方法”的接口上。该注解不是必须的,如果一个接口符合”函数式接口”定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@FunctionInterface,那么编译器会报错。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}
  • Deprecated

        用于标识方法或类,标识该类或方法已过时,建议不要使用 。使用范围就想到广泛了,构造方法、字段、方法等。

        注意:只是提示过时了,不建议使用,不代表不能用,但是我们如果想用某个使用此注解标记的方法或者类的时候,建议找找有没有替换方案,实在没有替换方案,搞清楚为什么它会被设置成过时,使用不当可能会对我们的程序造成你意想不到问题,也可能会挖坑。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {}

自定义注解

        使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。在定义注解时,不能继承其他的注解或接口。@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型(返回值类型只能是基本类型、Class、String、enum)。可以通过default来声明参数的默认值。

public @interface 注解名 {定义体}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值