注解报错_java注解全面解析

44d7bc04d0f8d8d46878c2be3796de65.png
> 推荐阅读:
- 我的CSDN
- 我的博客园
- QQ群:704621321
- 我的个人博客

一。全面解析Java注解

1.为什么学习Java注解?学习Java注解有何好处?学完能做什么?(1)能·读懂别人写的代码,特别是框架相关的代码(2)让编程更加简洁,代码更加清晰(3)让别人高看一眼2.Java注解概念Java提供了一种源程序中的元素任何信息和任何元数据的途径和方法3.Java中的常见注解(1)JDK自带注解

@Override

首先创建一个Person接口,包含三个方法,如下:

package com.example.demo;

public interface Person {
    public String name();
    public int age();
    public int uid();
}

创建一个MyInfo类,并添加实现方法,添加实现方法的快捷键为Alt+Enter,如下图:

package com.example.demo;

public class My implements Person {
    @Override
    public String name() {
        return null;
    }

    @Override
    public int age() {
        return 0;
    }

    @Override
    public int uid() {
        return 0;
    }
}

4f1d0cd7ed6c36a8933bd2c490e3be6f.png

此时会发现自动在每个方法上面自动生成了@Override注解,该注解的作用是告诉编辑器该方法覆盖掉该类实现的接口中的方法

@Deprecated

当某个方法不再需要被使用时使用@Deprecated,代表该方法过时。之所以不删掉方法而使用注解的方式是避免以前某些地方使用该方法造成报错。使用过时了的方法,方法名上会有一条删除线,不会有错误提示但是会有警告。

38670379798fde7cbcdfd1c8aeb7d116.png

如果非得使用过时的方法,可使用@Suppvisewarnings。

@Suppvisewarnings

@Suppvisewarnings使用方法如下:

package com.example.demo;

public class Test {
    @SuppressWarnings("depreaction")
    public void uid(){
        Person m=new MyInfo();
        m.uid();
    }
}

(2)常见第三方注解

becc03f929fa94eca2a5b9e706bba06f.png

Autowried:生成对应的实例4.注解分类

167b4ae7579db4214b19271eb793500c.png

除了以上的注解外,还有一种特殊的注解,即元注解。元注解:注解的注解。5.自定义注解总结起来共6点要求:

307ef4809a54cd853baf856b6753dfac.png

对5的使用:当只有一个成员,成员名必须为value,则使用注解时,应按照一下格式:

@注解名(对应成员的值)

举例:

@Description("happy")

对6的使用:没有成员,则使用注解时,应按照一下格式:

@注解名

举例:

@Description

af306f605ba04146692e008455dcc35f.png

c531a0e4a2291e6efaf5b9578730de79.png

解析注解概念:通过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。解析注解的步骤:(1)使用类加载器加载类(2)找到类上面的注解(3)拿到注解实例(4)找到方法上的注解操作:(1)创建自定义注解Desription(2)在com.ann.test路径下的Child类中使用(1)中的注解

9a129340c623d80fb5b10da436d6c51b.png

(3)拿到注解实例

a7a54f5c38d4879facacc982f968765d.png

运行输出:I am class annotation(4)找到方法上的注解

829f97343ce51c241d2b691c6ef8aa20.png

3e390a0b391777fa3607df26cbbe5a47.png

运行输出:I am method annotation

注意:子类注解继承只能够作用于类,继承之后只会继承类上面的注解。举例:(1)Person类上有注解,类中的方法也有注解

888e3d8b1b8254444d2d380ab4c8d042.png

(2)Child类继承自Person类

0d75155379505b4dbb39ff1562b6cecc.png

(3)使用上述的4步骤解析Child类中的注解,输出为:I am interface

本文由博客一文多发平台 OpenWrite 发布!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值