读书人

反射的容易示例

发布时间: 2012-10-09 10:21:45 作者: rapoo

反射的简单示例

反射 通过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();
??}
?}

}

读书人网 >编程

热点推荐