起首什么是注解?@Override就是注解,它的感化是:
- 检查是否精确的重写了父类中的办法。
- 标明代码,这是一个重写的办法。
1、表如今于:检查子类重写的办法名与参数类型是否精确;检查办法private/final/static等不克不及被重写。实际上@Override对于应用法度榜样并没有实际影响,大年夜它的源码中可以出来。

2.1 运行时注解
2、主如果表示出代码的可读性。

一、注解基本快读
1、元注解
元注解是由java供给的基本注解,负责注解其它注解,如上图Override被@Target和@Retention润饰,它们用来解释解释其它注解,位于sdk/sources/android-25/java/lang/annotation路径下。
元注解有:
- @Retention:注解保存的生命周期
- @Target:注解对象的感化范围。
- @Inherited:@Inherited标明所润饰的注解,在所感化的类上,是否可以被持续。
- @Documented:如其名,javadoc的对象文档化,一般不关怀。
@Retention
Retention说标清楚明了注解被生命周期,对应RetentionPolicy的列举,表示注解在何时生效:
- SOURCE:只在源码中有效,编译时摈弃,如膳绫擎的@Override。
- CLASS:编译class文件时生效。
- RUNTIME:运行时才生效。
如下图X1,com.android.support:support-annotations中的Nullable注解,会在编译期断定,被注解的参数是否会空,具体后续分析。

@Target
Target标清楚明了注解的实用范围,对应ElementType列举,明白了注解的有效范围。
- TYPE:类、接口、列举、注解类型。
- FIELD:类成员(构造办法、办法、成员变量)。
- METHOD:办法。
- PARAMETER:参数。
- CONSTRUCTOR:构造器。
- LOCAL_VARIABLE:局部变量。
- ANNOTATION_TYPE:注解。
- PACKAGE:包声明。
- TYPE_PARAMETER:类型参数。
- TYPE_USE:类型应用声明。
如上图X1所示,@Nullable可用于注解办法,参数,类成员,注解,包声明中,常用例子如下所示:
- /**
- * Nullable注解
- * bind办法的参数target和返回值Data可认为null
- */
- @Nullable
- public static Data bind(@Nullable Context target) {
- //do someThing and return
- return bindXXX(target);
- }
@Inherited
注解所感化的类,在持续时默认无法持续父类的注解。除非注解声清楚明了 @Inherited。同时Inherited声明出来的注,只对类有效,对办法/属性无效。
- @Retention(RetentionPolicy.RUNTIME)
- @Inherited
- public @interface AInherited {
- String value();
- }
- @Retention(RetentionPolicy.RUNTIME)
- public @interface BNotInherited {
- String value();
- }
- @AInherited("Inherited")
- @BNotInherited("没Inherited")
- public class Parent {
推荐阅读
人工智能的将来到底应当是什么样的?它应当朝着什么偏向成长?在成长的过程中应当留意什么?这些都是每一个存眷科技成长的人在思虑的问题。比来,O'Reilly Media 开创人兼 CEO Tim O'Reil>>>详细阅读
本文标题:Android注解快速入门和实用解析
地址:http://www.17bianji.com/lsqh/37700.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示