android 注解简介一: java基本注解

本文深入讲解Java注解的概念,包括其定义、用途和内置注解的详细解析。介绍了@Override、@Deprecated和@SuppressWarnings这三个JDK1.5后内置的注解,以及它们在代码中的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注解

定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
注解的功能建立在反射之上,通过注解,我们可以对程序进行注释操作。

JDK1.5之后的系统中,内置了三个注解:

@Override

如果有方法需要子类覆写,那么会要求子类的方法名称,参数的类型,个数,顺序都要完全一致,然而在实际开发中,编写子类的时候很可能会由于手误导致覆写错误。
比如:
@Override
原本打算覆写toString,却由于手误写成了tostring。s由于失误写成了小写,而java是区分大小写的,所以编译器会认为tostring是一个新的方法,而不会产生编译错误。为了保证子类方法的覆写不会出错,jdk内置了@Override注解。这个注解会告诉编译器,这个方法是覆写父类的,一旦检测到子类的方法和父类不一致则会引发编译器错误:Method does not override method from its superclass
@Override

我们点进去看看@Override注解的源码,会发现RetentionPolicy.SOURCE,这说明@Override注解是一个作用在源码阶段的注解。
RetentionPolicy用来表示注解的作用周期,共有三种类型:源码阶段,class文件阶段,运行时阶段。
这个后面再讲。

public enum RetentionPolicy {
    SOURCE,   //源文件阶段
    CLASS,	   //class文件阶段
    RUNTIME;  //运行时阶段

    private RetentionPolicy() {
    }
}   

@Deprecated //用来表示一个方法已经过时的注解
public class Study {

    //原本打算覆写toString
    public String tostring() {
        return "study";
    }

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

    @Deprecated    //表明这个方法已经过时,不建议使用
    public void function1() {

    }

}

@Deprecated
在使用的时候,会发现方法被横线给杠掉了。
这个注解只是用来告诉使用者这个方法已经不建议使用,这时候编译器会产生警告信息,因为使用者调用的方法已经过时。过时的方法还保留着主要是为了对过去使用过此方法的项目保持兼容。

@SuppressWarnings(“unsed”) //忽略警告

@SuppressWarnings
我们经常会发现这种定义了变量又没有使用的情况,这种情况下编译是没有问题的,但会有警告信息
@SuppressWarnings
如果我们要忽略这种警告信息,就要用到@SuppressWarnings注解
@SuppressWarnings
这里是忽略了“unused”类型的警告
除了“unused”类型,还有很多其它类型

忽略注解关键字关键字含义
allto suppress all warnings (抑制所有警告)
boxingto suppress warnings relative to boxing/unboxing operations(抑制装箱、拆箱操作时候的警告)
castto suppress warnings relative to cast operations (抑制映射相关的警告)
dep-annto suppress warnings relative to deprecated annotation(抑制启用注释的警告)
deprecationto suppress warnings relative to deprecation(抑制过期方法警告)
fallthroughto suppress warnings relative to missing breaks in switch statements(抑制确在switch中缺失breaks的警告)
finallyto suppress warnings relative to finally block that don’t return (抑制finally模块没有返回的警告)
hidingto suppress warnings relative to locals that hide variable()
incomplete-switchto suppress warnings relative to missing entries in a switch statement (enum case)(忽略没有完整的switch语句)
nlsto suppress warnings relative to non-nls string literals(忽略非nls格式的字符)
nullto suppress warnings relative to null analysis(忽略对null的操作)
rawtypesto suppress warnings relative to un-specific types when using generics on class params(使用generics时忽略没有指定相应的类型)
restrictionto suppress warnings relative to usage of discouraged or forbidden references
serialto suppress warnings relative to missing serialVersionUID field for a serializable class(忽略在serializable类中没有声明serialVersionUID变量)
static-accessto suppress warnings relative to incorrect static access(抑制不正确的静态访问方式警告)
synthetic-accessto suppress warnings relative to unoptimized access from inner classes(抑制子类没有按最优方法访问内部类的警告)
uncheckedto suppress warnings relative to unchecked operations(抑制没有进行类型检查操作的警告)
unqualified-field-accessto suppress warnings relative to field access unqualified (抑制没有权限访问的域的警告)
unusedto suppress warnings relative to unused code (抑制没被使用过的代码的警告) ----------

以上就是jdk1.5以后,系统内置的三个注解的介绍啦(#^ . ^#)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值