通过反射获取一个内部类的属性

//Class clazz = Class.forName("com.example.test.R.drawable");

Class clazz = com.example.test.R.drawable.class;
Field field = clazz.getDeclaredField("ic_launcher");

Log.i(TAG, "id::" + field.getInt("3"));

这段代码是可以正确获得属性的值的,但是注释的代码获取不到属性值;不知道为什么?

那是因为内部类的命名为外部类$内部类;所以找不到,所以改成Class clazz = Class.forName("com.example.test.R$drawable");类加载器就能找到了

你可能感兴趣的:(通过反射获取一个内部类的属性)