编程开发教程_反射。
1.这里是一个简单的反射的小例子:
try{
ClassmanagerClass = Class.forName("Android.telephony.TelephonyManager");
Method methodDefault= managerClass.getMethod("getDefault",new Class[] {int.class});
Object manager = methodDefault.invoke(managerClass,sub);
Method methodSend= managerClass.getMethod("getSimState");
int state = (Integer)methodSend.invoke(manager);
if(state== TelephonyManager.SIM_STATE_READY){
return true;
}
}catch (Exception e){
e.printStackTrace();
return false;
}
2.如何得到类对象
<1>类名.class
<2>对象.getClass()
<3>Class.forName("全限定名");
<4>类加载的loadClass("全限定名");
<5>子类.class.getSuperClass();
<6>包装类.class
3.根据类得到类名(全限定名)
c.getName()------------>全限定名
c.getSimpleName() ---->类名
c.getPackage()---------->包名
4.根据类得到类的属性
c.getField("field属性名");
属性名:f.getName()
属性修饰符:f.getModifiers()
属性的数据类型:f.getType().getName()
给属性设值:f.set()
得到属性的值:f.get()
得到私有的属性:f.getDeclaredField("属性名");
得到所有的声明的属性
c.getDeclaredFields()
5.根据类得到类的方法
c.getMethod()
c.getDeclaredMethod();
6.根据类得到类的构造方法
7.根据类得到类的实现接口列表