android 注解和反射 (入门以及使用)
先来看一看今天的效果:
代码效果:
效果不重要,重要的是代码:
注解
官方解释:
从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
百度百科
定义一个注解:
public @interface SZJ{}
元注解:
元注解是用来标示当前注解是干什么用的,什么时候用,常用的有2个
@Target
- ElementType.ANNOTATION_TYPE 应用于注解类型。
- ElementType.CONSTRUCTOR 应用于构造函数。
- ElementType.FIELD 应用于字段或属性。
- ElementType.LOCAL_VARIABLE 应用于局部变量。
- ElementType.METHOD 应用于方法级注解。
- ElementType.PACKAGE 可以应用于包声明。
- ElementType.PARAMETER 可以应用于方法的参数。
- ElementType.TYPE 可以应用于类的任何元素。
@Retention
- RetentionPolicy.SOURCE 仅用于源码级别,会被编译器忽略[编译成class后,会被class丢弃该注解]
- RetentionPolicy.CLASS 在编译器由编译器保留,JVM会忽略
- RetentionPolicy.RUNTIME 由JVM保留,运行时可以使用
CLASS包含了SOURCE,RUNTIME包含SOURCE、CLASS。
SOURCE<CLASS<RUNTIME
举例:
@Retention注解解释:
RetentionPolicy.SOURCE 仅用于源码级别,会被编译器忽略[编译成class后,会被class丢弃该注解]
这个注解太偏源码,用到的地方比较少
RetentionPolicy.CLASS 在编译器由编译器保留,JVM会忽略
这个注解一般是APT技术用到的比较多,像一些ARouter,EventBus,Butterknifer等等框架都是用的这个注解.
反射
定义:
反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和
方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。是Java被视为动态语言的关键。
百度百科
使用场景:
不知道某个类是什么类,用来干什么的,就可以通过反射机制直接调用到他内部的属性,以及方法
反射与Class:
反射始于Class,Class是一个类,封装了当前对象所对应的类的信息。一个类中有属性,方法,构造器等,比如说有一个Person类,一个Book类,这些都是不同的类,现在需要一个类,用来描述类,这就是Class,它应该有类名,属性,方法,构造器等。Class是用来描述类的类。
获得Class对象:
- 类名获取: 类名.class
- 对象名获取: 对象名.getClass()
- 全类名获取: Class.forName(“全类名”)
代码展示:
public void test() {System.out.println("我是方法哦");//类名获取Class<?> intCls = int.class;Class<?> strCls = String.class;//对象名获取UserBean userBean = new UserBean();Class<? extends UserBean> userBeanCls = userBean.getClass();//全类名获取try {Class<?> userBeanCls2 = Class.forName("com.example.annotation.bean.UserBean");} catch (Exception e) {e.printStackTrace();}}
反射的
定义 注解是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理. 分类 注解分为标准注解和元注解: 标准注解 @Override:对覆盖超类中的方法进行标记,如果被标记的方法 ... android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ... 1 Day16–多线程01 1.1 程序概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 1.2 进程 1.2.1 概念 进程(proce ... Android注解处理器APT技术简介 APT是什么 例子 APT有什么用 (好处) APT原理 (为什么) APT实践 (怎么做) 参考 APT是什么 APT全称"Annotation P ... 注解.反射.动态编译.字节码操作 前言:本篇博客将介绍Java中注解的定义.使用以及反射对Java动态性的支持和Java字节码操作,通过本篇内容,读者将对Java知识有更加深刻的理解,同时为后面And ... 目录 开发自己的山寨Android注解框架 开发自己的山寨Android注解框架 参考 Github黄油刀 Overview 在上一章我们学习了Java的注解(Annotation),但是我想大家可能 ... 上一节我们已经将自动生成注解代码部分介绍完毕,今天这篇文章是自定义Android注解系列的最后一篇文章.希望大家这一路走来有所收获. 经过前面的了解,我们三大部分:butterknife-annota ... 2019独角兽企业重金招聘Python工程师标准>>> 玩转java(Android)注解 1. java标准(原生)注解概览 Java API 中,在java.lang.java. ... 前言 首先需要一些先验知识: 浅谈Java/Android下的注解 Java.Android基础之-反射 Java.Android静态代理与动态代理 简介 在我们常用的框架中注解和自动生成代码的身影很 ...android 注解和反射 (入门以及使用)相关推荐
最新文章
热门文章