码迷,mamicode.com
首页 > 编程语言 > 详细

java反射

时间:2014-06-28 18:15:56      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:java   get   os         name   

//之前懒得打字,今天稍微啰嗦点。说说什么是java反射,这个打个比喻,反射就像是一面镜子,通过它我们可以反观自己。反射其实就是用于描述java类的一个机制,通过它,可以了解类的属性和方法,在java的代理中就用到了反射。下面是我学习过程中的一些代码。

    public static void main(String[] args) {
        try {
            Class<?> cl1=Class.forName("com.java.reflect.Person");
            //获取class中的所有方法,除私有方法之外
            Method[] methods=cl1.getMethods();
            for(Method method:methods){
                System.out.println(method.getName());
            }
            System.out.println("^^^^^^^^^^^");
            //只获取当前类的所有方法,包括私有方法。
            Method[]methods2=cl1.getDeclaredMethods();
            for(Method method:methods2){
                System.out.println(method.getName());
            }
            //获取指定的方法
            System.out.println("^^^^^^^^^^^");
            try {
                Method method3=cl1.getMethod("setName", String.class,int.class);
                
                Object obj=null;
                try {
                    obj=Class.forName("com.java.reflect.Person").newInstance();
                    Object[]agrs={"hello",1};
                    //执行obj类相应的方法,特别的是在方法是通过方法名和参数的列表来实现的
                    method3.invoke(obj, agrs);
                    System.out.println(obj.toString());
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (NoSuchMethodException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SecurityException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
}

java反射,布布扣,bubuko.com

java反射

标签:java   get   os         name   

原文地址:http://www.cnblogs.com/liuquande/p/3797184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!