• 反射获取带参数的构造方法


    Constructor

    Class类的newInstance()方法是使用该类无参的构造函数创建对象, 如果一个类没有无参的构造函数, 就不能这样创建了,可以调用Class类的getConstructor(String.class,int.class)方法获取一个指定的构造函数然后再调用Constructor类的newInstance("张三",20)方法创建对象

    import java.lang.reflect.Constructor;
    import com.loaderman.bean.Person;
    
    public class Demo_Constructor {
    
      /**
       Class类的newInstance()方法是使用该类无参的构造函数创建对象, 如果一个类没有无参的构造函数,
       就不能这样创建了,可以调用Class类的getConstructor
       (String.class,int.class)方法获取一个指定的构造函数然后再调用Constructor类的newInstance
       ("张三",20)方法创建对象
        @throws Exception
     */
        public static void main(String[] args) throws Exception {
           Class clazz = Class.forName("com.loaderman.bean.Person");
            //Person p = (Person) clazz.newInstance();          通过无参构造创建对象
            //System.out.println(p);
            Constructor c = clazz.getConstructor(String.class,int.class);//获取有参构造
            Person p = (Person) c.newInstance("张三",23);         //通过有参构造创建对象
            System.out.println(p);
        }
    
    }
    
    package com.loaderman.bean;
    
    public class Person {
        private String name;
        private int age;
        public Person() {
            super();
    
        }
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
    
  • 相关阅读:
    使用cout进行格式化
    20175324 《Java程序设计》第3周学习总结
    20175324第二周学习总结
    第三周学习总结
    JAVA第二周学习总结
    20175330第一周学习总结。
    20175330第一周学习总结
    指针
    数组总结(一)
    数组练习题A财务管理
  • 原文地址:https://www.cnblogs.com/loaderman/p/6411270.html
Copyright © 2020-2023  润新知