反射 通过java类获悉其它类的细节~
1通过对象 得到所属类
2 加载类
package test.reflect;
import java.lang.reflect.*;
/**
* //具体应用 return (Example) this.getHibernateTemplate().get(Example.class, id);
* 反射就是在框架中会用到的更多~~
*/
public class ReflectTest { public static void main(String[] args) {
Class inspect;
try {
Integer k1 = 1;
// k1是对象
Class c1 = k1.getClass();
System.out.println(c1);
// 类名
Class c2 = Integer.class;
System.out.println(c2);
// 类中的明细
inspect = Class.forName("java.lang.Long"); Method[] methods = inspect.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
// 返回类型
Class returnVal = method.getReturnType();
// 得到方法是 public private 类型
int mods = returnVal.getModifiers();
String modVal = Modifier.toString(mods);
// 参数
Class[] params = method.getParameterTypes(); System.out.println("Method:" + method.getName());
System.out.println("modifiers:" + modVal);
System.out.println("return type :" + returnVal);
for (int j = 0; j < params.length; j++) {
System.out.println("params:" + params[j].toString());
}
System.out
.println("-------------------------------------------");
} } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}