安卓的反射运用

简介: 在我之前的几篇文章中曾反复提到反射这个概念,这是java的一个重要知识点,所以今天记录一下在安卓开发中如何写反射的。

引言

在我之前的几篇文章中曾反复提到反射这个概念,这是java的一个重要知识点,所以今天记录一下在安卓开发中如何写反射的。

反射概念

反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。
在计算机科学领域,反射是一类应用,它们能够自描述和自控制。
这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,
调整或修改应用所描述行为的状态和相关的语义。

从我的开发经历来看,我们主要用反射将写在其他文件中的代码功能可以通过反射机制让其可以在目的文件中使用访问(通过Java反射机制,用Class 创建类对象)。从而让功能繁杂的单一文件变得可以解耦,让其可读性更强,日志也更容易分析。

反射写法

安卓中一般如下写法:

Class clazz = Class.forName("***");
        //获取某个类的对象
        Object bst = clazz.newInstance();
        //获取有参有返回值的方法
        Method[] declaredMethods = clazz.getDeclaredMethods();
        Method m = clazz.getDeclaredMethod("getxxxx");//方法名字
        m.setAccessible(true);//关闭安全检查  **由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关闭安全检查就可以达到提升反射速度的目的**
        Object query = m.invoke(bst); //返回值

反射的用处与解释

反射机制主要提供的功能

1.在运行时判断任意一个对象所属的类;

2.在运行时构造任意一个类的对象;

3.在运行时判断任意一个类所具有的成员变量和方法;

4.在运行时调用任意一个对象的方法;

java Reflection API简介
Class类:代表一个类,位于java.lang包下
Field类:代表类的成员变量(成员变量也称为类的属性)
Method类:代表类的方法
Constructor类:代表类的构造方法
Array类:提供了动态创建数组,以及访问数组的元素的静态方法

总结

感觉这一块在开发中很重要,虽然会变得复杂,但也使代码更加的“灵活”。后续我将会把一些难的知识点罗列出来,后续再深入探究。

相关文章
|
5月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台框架解析
在移动应用开发的广阔舞台上,安卓和iOS一直是两大主角。随着技术的进步,开发者们渴望能有一种方式,让他们的应用能同时在这两大平台上运行,而不必为每一个平台单独编写代码。这就是跨平台框架诞生的背景。本文将探讨几种流行的跨平台框架,包括它们的优势、局限性,以及如何根据项目需求选择合适的框架。我们将从技术的深度和广度两个维度,对这些框架进行比较分析,旨在为开发者提供一个清晰的指南,帮助他们在安卓和iOS的开发旅程中,做出明智的选择。
|
6月前
|
存储 程序员 定位技术
程序员必知:安卓的四大组件
程序员必知:安卓的四大组件
68 0
|
7月前
|
安全 开发工具 Android开发
安卓与iOS系统的优缺点比较
【2月更文挑战第6天】 安卓和iOS是目前市场上最流行的两种操作系统。虽然它们都拥有自己的独特之处,但它们也有一些共同之处。本文将探讨这两种操作系统的优缺点,并对它们进行比较。
206 5
|
Android开发
安卓获取版本号
安卓获取版本号
56 0
|
Android开发 iOS开发
判断手机端获取哪种类型的手机系统-安卓-ios
判断手机端获取哪种类型的手机系统-安卓-ios
|
Android开发
安卓GLSurfaceView使用简单范例
安卓GLSurfaceView使用简单范例
103 0
|
Android开发 iOS开发 UED
关于安卓自定义类似于iOS系统自带的菊花loading
app请求数据多多少少需要点时间,友好的用户体验就是添加loading
176 1
关于安卓自定义类似于iOS系统自带的菊花loading
|
Java Android开发
|
Android开发
安卓在网络请求上的应用(一)
已经在工作接了不少次服务器请求接口,之前都是跟着模仿前人的代码,很少去总结,正好,现在把这一知识融汇贯通一下,也算一收获。 本篇文章围绕网络请求展开,来聊聊安卓中如何去实现这任务的,当然,我事先也在众多大神博客中了解到网络请求有很多方法,不止我这一种,如有错误,烦请指正。
|
移动开发 JavaScript Android开发
关于安卓jsbridge的使用
混合开发中,少不了的部分是JS与原生的交互,jsbridge为web端与原生交互提供了方便。
353 1