反射之获取类的Class

Android2024年1月10日 am8:08发布7个月前更新 3XCN.COM站长
0 0 0
广告也精彩
目录

前言

记录一下反射相关内容,摘抄于此,方便自己查阅。

反射技术包括如下内容:

  1. 根据一个字符串得到一个类的类型

  2. 获取一个类的所有公用或私有、静态或实例的字段,方法,属性

  3. 对泛类型的反射

正文

本文主要通过字符串得到类的类型

PS: 类型用Class表示

getClass

String mName = "name";
Class mClass = mName.getClass();

通过一个对象,获取它的Class。

Class.forName

根据类命名空间和类组成的字符串,获取它的Class。

try {
    //字符串中的类可能不存在,
    Class mTextView = Class.forName("android.widget.TextView");
} catch (ClassNotFoundException e) {
    throw new RuntimeException(e);
}

获取到它的类型后,可以获取其父类型。

Class mSuperClass = mTextView.getSuperclass();

# TextView的父类型
class android.view.View
# View的父类型
class java.lang.Object

class属性

每个类都有class属性,可以直接.class进行获取其类的Class。

# class java.lang.String
Class mString = String.class;
# class java.lang.String
Class mString2 = java.lang.String.class;
# int
Class mInt = int.class;
# class [I
Class mIntArray = int[].class;
# class [D
Class mDoubleArray = double[].class;

TYPE属性

可以通过TYPE获取对应类型的Class。

# boolean
Class mBoolean = Boolean.TYPE;
# byte
Class mByte = Byte.TYPE;
# char
Class mCharacter = Character.TYPE;
# short 
Class mShort = Short.TYPE;
# int
Class mInteger = Integer.TYPE;
# long
Class mLong = Long.TYPE;
# float
Class mFloat = Float.TYPE;
# double
Class mDouble = Double.TYPE;
# void 
Class mVoid = Void.TYPE;

参考文章

  1. Android插件化开发指南-包建强》

  2. Java的反射简介

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。