zoukankan      html  css  js  c++  java
  • 通过反射获取class文件中的构造方法,运行构造方法

    /*
     *  通过反射获取class文件中的构造方法,运行构造方法
     *  运行构造方法,创建对象
     *    1、获取class文件对象
     *    2、从class文件对象中,获取需要的成员
     *    
     *  Constructor 描述构造方法对象类
     */

    1、person类,用于测试获取无参的构造方法

    package cn.itcast.demo1;
    
    public class Person {
        public String name;
        private int age;
    
        
        /*static{
            System.out.println("静态代码块");
        }*/
        
        public Person(){
        }
        
        public Person(String name,int age){
            this.name = name;
            this.age = age;
        }
        
        private Person(int age,String name){
            this.name = name;
            this.age = age;
        }
        
        public void eat(){
            System.out.println("人吃饭");
        }
    
        public void sleep(String s, int a,double d){
            System.out.println("人在睡觉"+s+"....."+a+"....."+d);
        }
        private void playGame(){
            System.out.println("人在打游戏");
        }
    
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
        
    }

    2、获取无参构造方法测试类

    public class ReflectDemo1 {
        public static void main(String[] args) throws Exception {
        
            Class c = Class.forName("cn.itcast.demo1.Person");
            //使用class文件对象,获取类中的构造方法
            //  Constructor[]  getConstructors() 获取class文件对象中的所有公共的构造方法像person类中构造方法用private修饰的是获取不到的
            /*Constructor[] cons = c.getConstructors(); //获取到的是多个构造方法
            for(Constructor con : cons){
                System.out.println(con);
            }*/
            //获取指定的构造方法,空参数的构造方法
            Constructor con =  c.getConstructor();//获取指定的构造方法
            //运行空参数构造方法,Constructor类方法 newInstance()运行获取到的构造方法
            Object obj = con.newInstance();
            System.out.println(obj.toString());
        }
    }
  • 相关阅读:
    Oracle decode函数
    Flink笔记
    httpclient之put 方法(参数为json类型)
    XMLHTTPRequest的理解 及 SpringMvc请求和响应xml数据
    SQL获取本周,上周,本月,上月第一天和最后一天 注:本周从周一到周天
    Other
    Sql根据起止日期生成时间列表
    sql 在not in 子查询有null值情况下经常出现的陷阱
    sql 判断一个表的数据不在另一个表中
    查看系统触发器
  • 原文地址:https://www.cnblogs.com/a8457013/p/8134034.html
Copyright © 2011-2022 走看看