java源码解析之 注解annotation

    今天记录一下注解相关的内容,算是比较轻松的一次。 

《java源码解析之 注解annotation》

    注解是位于java的扩展包中,官方的提供的注解不是很多,但是扩展的注解还是挺多的,况且注解也已经成为了java语言的基本语法的一部分。在java.lang包有关于元注解的内容。 不过还是先来看看这边的内容

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

    上面是扩展包中generate注解的内容。

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

    以上是扩展包中resource注解的内容。 

《java源码解析之 注解annotation》

    以上是扩展包中completion的内容。 

《java源码解析之 注解annotation》

    以上是扩展包中resources的内容。 

    扩展包的注解基本看了,发现并没有什么收获。  但是它们有一个共同的特点,那就是都依赖于元注解。

    于是可以去看看元注解:

《java源码解析之 注解annotation》

    三大元注解。

 《java源码解析之 注解annotation》

    这个注解是那三个注解中相对不好理解的。   现在在回头来看,大致意思有一点关键字 public  的意思。如public和private的区别。

《java源码解析之 注解annotation》

    这个比较好理解。  Retention,字面意思为保留,保持的意思。   因此也好理解,它指明了一个注解的生命周期或者说作用域吧。

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

    以上是元注解target的内容。  他指明了注解所适用的对象,是作用域的意思。 

    接着是一些支撑的注解或者扩展的注解,但是由于它们位于lang包中,所以重要性自然是不容小觑。

《java源码解析之 注解annotation》

    Retention的支持枚举类。 

《java源码解析之 注解annotation》

    Target的支持枚举类。 

《java源码解析之 注解annotation》

    标识为本地的一个资源。 由于面向对象的语言还是要依赖于面向过程语言的,面向对象处理全局,面向过程处理局部。 因此很重要。 

《java源码解析之 注解annotation》

《java源码解析之 注解annotation》

    相当于注解类中的Object。  但是是一个抽象类。 而非注解。 

    看完了这些,并没有发现注解是怎样被处理和执行的。  因此只能靠自己猜测:  因为注解成为了java语言基础语法的一部分,因此极有可能直接注解的逻辑直接被jvm处理,所以在类中并不好看到它的处理逻辑。   另外,之前看反射部分内容的时候,了解到属性和方法的顶级父类的为注解,这在某种层面应该也能发现有些问题,但是具体什么关系还得看代码。    第三,自从1970年左右,模块化的程序设计发展以来,之后的高级语言基本都有这一个特性,所谓的模块化,也就是可装卸的。  在java中来看,一个方法是一个模块,一个属性也可以是一个模块,因此先写哪个方法哪个属性,后写哪个方法哪个属性,并不会影响程序的运行。 注解也是同样的,它应该也有相关的一些理念来进行一些处理。 

    ok,以上是注解相关的内容,以后有机会可以深入,因为它实在是很强大。 晚安,好梦!

 

 

    原文作者:java源码分析
    原文地址: https://blog.csdn.net/qq_36285943/article/details/80358479
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞