java 利用反射獲取內部類靜態成員變數的值
阿新 • • 發佈:2018-12-26
昨晚,一同事問到我,怎麼利用java反射解析內部類靜態成員變數的值,於是順手寫下了。
廢話不多說,直接上程式碼!
待解析類結構如下:
/**
* @Author changle
* @Time 17/6/13.
* @Desc to do
*/
public class Goods {
static class apple{
public static String version = "iphone6s[是手機不是吃的蘋果]";
public static String date = "生產日期 2017-06-13";
}
}
獲取內部類靜態成員變數工具類:
/** * @Author changle * @Time 17/6/13. * @Desc 獲取靜態內部類靜態變數 */ public class TestParseInnerProValue { public static void main(String[] args) { Class<?> clasz = Goods.class; printInnerParamValue(clasz); } public static void printInnerParamValue(Class<?> clasz){ Class innerClazz[] = clasz.getDeclaredClasses(); for(Class claszInner : innerClazz){ Field[] fields = claszInner.getDeclaredFields(); for(Field field : fields){ try { Object object = field.get(claszInner); System.out.println("獲取到的feild, name=" + field.getName()+", value="+ object.toString()); //列印內容 /* * 獲取到的feild, name=version, value=iphone6s[是手機不是吃的蘋果] 獲取到的feild, name=date, value=生產日期 2017-06-13 * */ } catch (IllegalAccessException e) { e.printStackTrace(); } } } } }