反射的简单示例
反射 通过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();
??}
?}
}