java 反射(二) 反射中Class常見的方法和屬性
阿新 • • 發佈:2018-12-05
package com.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 反射中Class常見的方法和屬性 * @author lr * */ public class Demo2 { public static void main(String[] args) throws ClassNotFoundException { Class<?> clazz =String.class; //Class的名稱(包含包路徑) String name = clazz.getName(); //Class的名稱(不包含包路徑) String simpleName = clazz.getSimpleName(); //Class的父類 Class<?> superclass = clazz.getSuperclass(); //Class的所有public方法 包含父類的 Method[] methods = clazz.getMethods(); //Class的所有本身宣告的方法,不限訪問許可權 Method[] declaredMethods = clazz.getDeclaredMethods(); //Class的所有public構造方法 包含父類的 Constructor<?>[] constructors = clazz.getConstructors(); //Class的所有本身宣告的構造方法,不限訪問許可權 Constructor<?>[] declaredConstructors = clazz.getDeclaredConstructors(); //Class的所有public屬性 包含父類的 Field[] fields = clazz.getFields(); //Class的所有本身宣告的屬性,不限訪問許可權 Field[] declaredFields = clazz.getDeclaredFields(); //Class實現的介面陣列 Class<?>[] interfaces = clazz.getInterfaces(); //Class是否為介面 boolean interface1 = clazz.isInterface(); //..... } }