zoukankan      html  css  js  c++  java
  • java反射

    //之前懒得打字,今天稍微啰嗦点。说说什么是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();
            }
        }
        
        
    }

  • 相关阅读:
    解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)
    Loadrunner参数化连接oracle、mysql数据源报错及解决办法
    JavaScript-Runoob-JS 浏览器BOM :JavaScript Window Screen
    JavaScript-Runoob-JS 浏览器BOM :JavaScript Window
    JavaScript-Runoob-JS 高级教程 :JavaScript RegExp 对象
    JavaScript-Runoob-JS 高级教程 :JavaScript Math
    JavaScript-Runoob-JS 高级教程 :JavaScript Boolean
    JavaScript-Runoob-JS 高级教程 :JavaScript Array
    JavaScript-Runoob-JS 高级教程 :JavaScript Date
    JavaScript-Runoob-JS 高级教程 :JavaScript Number 对象
  • 原文地址:https://www.cnblogs.com/liuquande/p/3797184.html
Copyright © 2011-2022 走看看