Java-->反射的用法(新手都能入门)

简单介绍 Java反射的用法:

本文内容包含在:http://blog.csdn.net/angcyo/article/details/46228465并且提供了Demo用例;

1:获取需要反射的对象(需要修改属性,或者需要调用非公隐藏方法的对象):

StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);

2:得到对象需要调用的方法或者字段的名称

//得到 方法名称,这个方法必须是public声明的才能获取,如果要获取非公方法名,需要使用getDeclaredMethods方法
Method getVolumeState = storageManager.getClass().getMethod("getVolumeState", String.class);//第一个参数:方法的名称, 第二个参数:方法的参数

//得到 字段名,这里用了getDeclaredField方法,所以可以得到非公声明的字段
Field tag = storageManager.getClass().getDeclaredField("TAG");
tag.setAccessible(true);//因为可能字段是非公有,所以需要设置访问权限为公有
tag.set(storageManager, "New Tag");//修改字段的值

3:调用方法(字段赋值,前面已经说了)

String state = (String) getVolumeState.invoke(storageManager,mountPoint);
//storageManager :是需要修改的对象
//mountPoint     :方法需要的参数

至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.

你可能感兴趣的:(java,反射,入门,新手)