美文网首页
注解annotation

注解annotation

作者: freezml | 来源:发表于2017-10-20 11:03 被阅读0次

    1、为什么注解是@interface?

    interface 只是用来限制行为的,interface表示行为,不表示行为表示类别可以用class,但是依然会选择用interface,因为Java中是单继承多实现;

    接口分为三类:

    markup interface:

    行为接口:

    常量接口:

    注解:若想要有属性并且去除类别限制,所以才会出现@interface(加强版interface),上至包类,下至方法变量,都可以使用;

    注解出现的目的:给程序看,使得程序识别出该方法或者该类该按照 指示的 逻辑来进行;

    interface 分为三类:指示接口,行为接口,常量接口

    标识一般会出现在多层嵌套的地方,例如Serializable接口,当有对象需要进行序列化时需要实现该接口,然而该标识接口中任何方法都没有,只是作为一种标识给调用该对象的程序看(原来该对象是可以序列化的),编译器检查对象是否可以序列化时只检查自己的非基本属性之外的其他对象属性是否可以序列化;

    例如:A对象中有B对象属性,B对象中有属性C,B对象中有属性F,C对象中有属性D,D对象中有属性E,编译器在编译A对象的时候只是检查B是否可以序列化,而不检查C或者D,这些留给编译B对象时检查其是否可以序列化;

    注解代理接口的优点与缺点?

    优点:作用范围广,注解可以作用在包、类、方法、对象上。

    注解可以声明参数。

    缺点:注解失去了编译检查的功能。

    2、为什么注解没有方法却能改变执行逻辑

    其实注解并没有改变什么,只是加了注解和没有加注解的的方法在执行的时候,左侧(即框架部分,隐藏并不可见的)部分根据注解走的方法不一样而已,类似if...else...,所以看起来事注解改变了程序逻辑,其实是框架已经写好封装好了

    相关文章

      网友评论

          本文标题:注解annotation

          本文链接:https://www.haomeiwen.com/subject/fpywbttx.html