Java开发系列-注解

概述

在JDK5之后提供了一个新特性,和类、接口同级。定义时使用的关键字是@interface。注解主要有三个作用,分别是编译检查、替代配置文件、定义注解(元注解)、分析代码(用到反射)。注解的本质就是接口,可通过反编译注解的字节码文件。

Java中的3个常用注解

@Override

@Override注解主要是用于编译检查,子类重写父类的方法,重写的方法上面有该注解,一旦我们修改重写方法名就会报错。当我们删除@Override,再修改就不会报错了,这样编译器会认为这个方法是开发者自定义的方法

@Override
public String toString() {
    return super.toString();
}

@SuppressWarnings

@SuppressWarnings注解作用是用于消除警告。比如我们定义一个变量,当变量未使用时,编译器会提示警告信息。对于这些警告如果你不想被提示,可以在方法名添加该注解。注解属性有很多取值,一般我们赋值"all",就意味着消除所有⚠️。

@SuppressWarnings("all")
public static void main(String[] args) {
    int a = 10;
}

@Deprecated

@Deprecated注解适用于提示方法不建议使用,可能改方法有bug或者有新的方法替代了。如果我们调用该注解表明的方法会有中划线提示。

如果我们写一个框架对外提供的接口想要告诉调用者该方法已经过期。也可以使用该注解声明。

@Deprecated
public static void test(){
    
}

自定义注解

自定义一个注解跟类、接口格式一样,只是修饰的关键字是@interface。概述中说过注解的本质就是接口,那么跟接口一样,接口中可以有常量和抽象方法。抽象方法在注解中就称之为注解属性

public @interface MyAnnotation {
    
    // 定义一个注解属性test
    public int test();
}

在MyAnnotation注解定义了一个test属性,该注解属性类型为int。 注意:注解属性类型只支持基本数据类型、Class、String、Annotation、Enum枚举

定义了MyAnnotation注解后,我们就可以在其它类中使用注解。

package com.coderhong.annotation;

// 给注解属性test赋值10
@MyAnnotation(test=10)
public class MyAnnotationExample {
    
}

猜你喜欢

转载自www.cnblogs.com/CoderHong/p/9503159.html