前言
记录一下反射相关内容,摘抄于此,方便自己查阅。
反射技术包括如下内容:
根据一个字符串得到一个类的类型
获取一个类的所有公用或私有、静态或实例的字段,方法,属性
对泛类型的反射
正文
本文主要通过字符串得到类的类型
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;
参考文章
《Android插件化开发指南-包建强》
《》
© 版权声明