每日一經(jīng)
每天收集一個(gè)java日常能用到的解決問(wèn)題的方法驾荣,以后方便查閱此疹。
實(shí)踐
反射類(lèi)(Reflection):運(yùn)行時(shí)去檢查或者修改應(yīng)用程序的能力
常用
獲取Class對(duì)象
Class.forName("java.lang.Integer")
獲取包名稱
File file = new File(".");
Package packageOfFile = file.getClass().getPackage();
// java.io
String packageNameOfFile = packageOfFile.getName();
得到類(lèi)的簡(jiǎn)寫(xiě)名稱(不包含包路徑)
Integer a = 0;
Class<?> clazz = a.getClass();
// Integer
System.out.println("Simple name: " + clazz.getSimpleName());
得到類(lèi)實(shí)現(xiàn)的接口
Integer a = 0;
Class<?> clazz = a.getClass();
Class<?>[] interfaces = clazz.getInterfaces();
// interface java.lang.Comparable
System.out.println("Interfaces: " + Arrays.toString(interfaces));
得到類(lèi)的成員變量
Integer a = 0;
Class<?> clazz = a.getClass();
Field[] fields = clazz.getDeclaredFields();
System.out.println("Fields: " + Arrays.toString(fields));
得到類(lèi)的方法
Integer a = 0;
Class<?> clazz = a.getClass();
Method[] methods = clazz.getMethods();
System.out.println("Methods: " + Arrays.toString(methods));