因为android用的是java开发,所以其用到的反射机制也就是java的反射,所谓反射,是在程序运行的状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用他的任意一个方法和属性。
反射所需要的类在java.lang.reflect包中
http://dlc.sun.com.edgesuite.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/latest/html/zh_CN/api/ 此链接为中文reflect的api,
1.在android开发中有一个例子用到了反射,那就是快速滑块,例如:
try {
//获得AbsListView类指定的字段/属性
Field mField = AbsListView.class.getDeclaredField("mFastScroller");
//设置此字段可访问
mField.setAccessible(true);
//返回指定对象上此 Field 表示的字段的值。
Object o = mField.get(listView);
//mField.getType()返回此字段的对象的class .getDeclaredField(".."),返回这个对象指定的字段,
mField=mField.getType().getDeclaredField("mThumbDrawable");
mField.setAccessible(true);
Drawable drawable=(Drawable) mField.get(o);
drawable=getResources().getDrawable(R.drawable.icon);
mField.set(o,drawable);
Toast.makeText(this, mField.getType().getName(), 1000).show();
} catch (Exception e) {
throw new RuntimeException(e);