通過反射獲取Class & Method
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
String str = new String();
Class c1 = String.class;
Class c2 = str.getClass();
Class c3 = Class.forName("java.lang.String");
System.out.println(c1 == c2 & c2 == c3);
String st = (String) c1.newInstance();
}
public static void printClassInfo(Object obj) {
Class c = obj.getClass();
System.out.println("c類名稱:" + c.getName());
Method[] m1 = c.getMethods();
Method[] m2 = c.getDeclaredMethods();
for (Method m : m1) {
System.out.println("方法的名稱:" + m.getName());
Class returnType = m.getReturnType();
System.out.println("返回類型的類類型:" + returnType);
System.out.println("返回類型的類類型的名字:" + returnType.getName());
Class[] paramTypes = m.getParameterTypes();
for (Class p : paramTypes) {
System.out.println("參數名:" + p.getName());
}
}
}