博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全面解析java注解
阅读量:6892 次
发布时间:2019-06-27

本文共 1760 字,大约阅读时间需要 5 分钟。

相信有过编程经验的人都见过注解这种东西,也许像我一样,会用、熟练之后,也就一直放那不管了。但是有没有一天突然想到,注解是个什么东西,如果你想到了,那么恭喜你,恭喜你想到了。不论多么复杂的框架、多么复杂的代码、无非是封装、继承、反射、泛型。但是,注解这种东西,是完全独立于java正常体系之外的东西,所以今天在这里一探究竟。

1.java常用注解:@Override(覆盖,覆写),@Deprecated(表明该方法已经过时,在调用的时候会有警告),@Suppvisewarnings(忽略某些警告)

2.自定义注解:

@Inherited//表示该注解注解的类,被继承的时候,子类也有了该注解(只能作用于类,不能作用于方法和接口)@Retention(RetentionPolicy.SOURCE)//注解的生命周期,可以是源码期,编译期,运行期@Target({ElementType.TYPE,ElementType.METHOD})//注解的作用域,可以是类,也可以是方法@Documented//表示生成Javadoc的时候会包含注解信息public @interface zhujie {  String desc();//注解的内容,实际上是一个变量,其类型只能是基本类型和String、Enumeration等常见类型  int age() default 18;}

3.解析注解

public class Jiexi {    public static void main(String[] args){        try {            //先通过反射获取到java类            Class a=Class.forName("A");            //该方法来查看某类是否有注解,参数是定义的注解类的Class对象            boolean isExist=a.isAnnotationPresent(zhujie.class);            if(isExist){                System.out.println("我是类上的注解");            }            //用反射方法获取该类的所有方法,并且查看是否含有某注解            Method[]methods=a.getMethods();            for (int i = 0; i < methods.length; i++) {                Method method=methods[i];                boolean isExist2=method.isAnnotationPresent(zhujie.class);                if(isExist2){                    System.out.println("我是方法上的注解");                }                //也可以获取某方法上面的所有注解,一个一个遍历找到是否包含自己要找的注解                Annotation annotation[]=method.getAnnotations();                for (Annotation annotation1 : annotation) {                    if(annotation1 instanceof zhujie){                        System.out.println("我是方法上的注解!");                    }                }            }        } catch (ClassNotFoundException e) {            e.printStackTrace();        }    }}

 

转载于:https://www.cnblogs.com/xiaoao/p/10574269.html

你可能感兴趣的文章
@Scheduled cronExpression表达式
查看>>
放射科医生可零门槛调用AI算法:美国放射学会发布人工智能开放平台
查看>>
谷歌智能音箱更新,玩转摄像头,但名归Nest麾下
查看>>
注册URL Scheme
查看>>
人工智能照进三百六十行:百度大脑与劳动者们
查看>>
多线程基础(七)GCD线程组+栅栏函数
查看>>
从濒临倒闭到狂赚50万,发生了什么?
查看>>
学习笔记-linux文件特殊基本权限基础
查看>>
Spring quartz的Job中如何获取Spring上下文
查看>>
FTP服务
查看>>
C#判断IP是否是指定范围内的IP
查看>>
TEC-005-cifs-Host is down
查看>>
saltstack模块之pkg相关模块
查看>>
linux查看内核版本号
查看>>
SVN合代码时遇到的问题
查看>>
tuna.tsinghua yum repo
查看>>
ext store remove old datas load new datas优化
查看>>
【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
查看>>
【COCOS2D-HTML5 开发之三】示例项目附源码及运行的GIF效果图
查看>>
mysql5.6的安装(rpm)
查看>>