android 注解

1:刚刚新版本号的公布,抽出时间写下关于注解在android 开发中的使用

在java中注解的相关的解释:

元注解:

元注解的作用就是负责注解其它注解,Java5.0 定义了4个标准的 meta-annotation 类型,他们被用来听对其它 annotation 类型作说明,

@Tatget

说明了Annotation 所修饰的对象范围 :Annotation 可被用于 packages types ( 类 接口 枚举 Annotation 类型) 类型成员 (方法 构造方法 成员变量 枚举值 ) 方法參数 和本地变量 (循环变量 catch 參数) 在Annotation 类型的声明中使用了target 可更加明晰其修饰的目标

取值(ElementType)有:

    1.CONSTRUCTOR:用于描写叙述构造器

    2.FIELD:用于描写叙述域

    3.LOCAL_VARIABLE:用于描写叙述局部变量

    4.METHOD:用于描写叙述方法

    5.PACKAGE:用于描写叙述包

    6.PARAMETER:用于描写叙述參数

    7.TYPE:用于描写叙述类、接口(包含注解类型) 或enum声明

@RetentionPoicy

定义改Annoation 被保留的时间长短,某些Annotation 仅出如今源码中,而被编译器丢弃,而还有一些却被编译在class 文件里。编译在class文件里的Annotation 可能会被nijihulue

 1.SOURCE:在源文件里有效(即源文件保留)

    2.CLASS:在class文件里有效(即class保留)

    3.RUNTIME:在执行时有效(即执行时保留)

  Retention meta-annotation类型有唯一的value作为成员。它的取值来自java.lang.annotation.RetentionPolicy的枚举类型值

@Documented:

  @Documented用于描写叙述其他类型的annotation应该被作为被标注的程序成员的公共API。因此能够被比如javadoc此类的工具文档化。Documented是一个标记注解。没有成员。

@Inherited:

  @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。假设一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

  注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。

  当@Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这样的继承性。假设我们使用java.lang.reflect去查询一个@Inherited annotation类型的annotation时,反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层

自己定义注解:

  使用@interface自己定义注解时,自己主动继承了java.lang.annotation.Annotation接口,由编译程序自己主动完毕其它细节。

在定义注解时。不能继承其它的注解或接口。@interface用来声明一个注解。当中的每个方法实际上是声明了一个配置參数。

方法的名称就是參数的名称,返回值类型就是參数的类型(返回值类型仅仅能是基本类型、Class、String、enum)。能够通过default来声明參数的默认值。

  定义注解格式:

  public @interface 注解名 {定义体}

  注解參数的可支持数据类型:

    1.全部基本数据类型(int,float,boolean,byte,double,char,long,short)

    2.String类型

    3.Class类型

    4.enum类型

    5.Annotation类型

    6.以上全部类型的数组

  Annotation类型里面的參数该怎么设定:

  第一,仅仅能用public或默认(default)这两个訪问权修饰.比如,String value();这里把方法设为defaul默认类型;   

  第二,參数成员仅仅能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和 String,Enum,Class,annotations等数据类型,以及这一些类型的数组.比如,String value();这里的參数成员就为String;  

  第三,假设仅仅有一个參数成员,最好把參数名称设为"value",后加小括号.例:以下的样例FruitName注解就仅仅有一个參数成员。

时间: 2024-10-13 02:40:46

android 注解的相关文章

Java Android 注解(Annotation) 及几个常用开源项目注解原理简析

不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析.PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 完整版原文见:Java Android 注解(Ann

Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架

前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直到后来android-apt的出现通过注解根据反射机制动态编译生成代码的方式来解决在运行时不再使用发射机制,不过随着android-apt的退出不再维护,我们今天利用Android studio的官方插件annotationProcessor来实现一下自己的ButterKnife UI注解框架. 需

android注解使用详解(图文)

在使用Java的SSH框架的时候,一直在感叹注解真是方便啊,关于注解的原理,大家可以参考我的另一片文章Java注解详解.最近有时间研究了android注解的使用,今天与大家分享一下. android中注解的使用用到了GitHub上的开源框架androidannotations,下载地址.这个开源框架应该是目前使用人数最多的android注解框架了,主要是由于它设计的注解标签非常多,能够满足我们日常开发中的大部分需求.androidannotations将许多可以抽取出来的方法都包装成了注解标签供

Android注解利器:ButterKnife 的基本使用

前言 ButterKnife 简介 ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成. 项目github地址:https://github.com/JakeWharton/butterknife ButterKnife 优势 1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率2.方便的处理Adapter里的ViewHolder绑定问题3.运行时不会影响AP

关于android注解的思考和实现方式

  我们平常在开发web项目的时候,经常会使用SSH来构建我们的项目,也有很多程序猿喜欢用注解来减少代码量.但是各位屌丝程序猿们,大家有没有想过这个注解是怎么实现的呢.我们又该如何写出像注解这么优雅的代码呢.除了我们平时在写代码的时候看到了新的东西之后始终保持探索的精神.还要有大家拿出极大的热情刻苦专研和对待代码一丝不苟的精神.这样才能使得自己进步,写出更加优雅的代码.今天我带大家来写一个注解类,初始化android控件.    废话少说,先上一段代码. package com.example.

Android注解编程的第一步---模仿ButterKnife的ViewBinder机制

ButterKnife的使用极大方便了Android程序员的开发,实际上,我们可以自己模仿一下实现. 首先就是要了解Java注解的使用. 我们首先要声明一个@interface,也就是注解类: @Target(ElementType.FIELD)//表示用在字段s上 @Retention(RetentionPolicy.RUNTIME)//表示在生命周期是运行时 public @interface ViewBinder { int id() default -1; String method()

使用Android注解来改善代码

昨晚看到一篇好文章.然后是英文的.所以决定翻译分享给大家.这是原文链接:http://www.michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/ 假设你还没听说过Android支持注解库,那么你将错过能够帮助你捕获bug的一个轻便灵活的新包. 在这个库中包括了非常多Java的注解,它将帮助Android Studio为了可能出现的错误来检查你的代码,而且反馈通知给你.这个库有

Android注解使用之Dagger2实现项目依赖关系解耦

前言: 最近牵头发起公司app的重构工作,如何通过重构让项目的耦合降低.开发效率提高,一直是我努力的方向,今天来学习一下一个注解框架Dagger2,然后看看如何使用它来降低项目的耦合. Dagger2 一句话:一款快速的注解框架,应用于Android.Java,由 Google 开发和维护,是 Square 的 Dagger 项目的分支. gitHub:https://github.com/google/dagger Dagger2采用依赖注入方式,依赖注入是一种面向对象的编程模式,它的出现是为

Android注解学习(1)

对于注解这个概念刚开始不是很理解,翻阅了其他人博客,参考实现的例子开始理解与运用.以前刚开始的写android项目时,一般找定义控件并初始化控件都是调用findviewbyId,然而当一个布局页面(类似提交表单页面)下控件特别多时代码就会显得臃肿,也不方便后续维护 .后面,别人推荐下去用xutils框架发现提供注解去绑定控件,我感觉对于注解直观来看他把声明与绑定控件合在一起,代码清晰好多.有没有? 1 2 @ViewInject(id = R.id.lv_test1) 3 private Lis