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求标准偏差,oracle求标准偏差
    遇到 oracle 错误904 "maxsize" 标识符无效
    oracle添加自增字段
    oracle误删数据之表闪回
    浅淡ToString与Covert.ToString方法
    一段能用来统计ip访问的代码(自用)包括所在地
    Asp.Net 学习资源列表
    【META httpequiv="ContentType" Content="text/html; Charset=*】意义详解
    FreeTextBox treeview menu显示问题解决方法
    双边可关闭对联广告!
  • 原文地址:https://www.cnblogs.com/liuquande/p/3797184.html
Copyright © 2011-2022 走看看