zoukankan      html  css  js  c++  java
  • 反射获取带参数的构造方法

    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;
        }
    
  • 相关阅读:
    单链表的逆转
    树的子结构和树的深度
    升级版爬楼梯问题
    蛇形数组
    正则表达式匹配
    构建乘积数组
    N皇后问题
    IOS计算文字高度
    Block的copy时机
    转:CocoaPods pod install/pod update更新慢的问题
  • 原文地址:https://www.cnblogs.com/loaderman/p/6411270.html
Copyright © 2011-2022 走看看