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


    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;
        }
    
  • 相关阅读:
    HTTP请求报文
    NSInteger和int分别在什么时候使用
    iOS开发之一些字符串常用的代码
    NSTimer用法
    property 'count' not found on object of type 'NSMutableArray
    详解MAC硬盘中各个文件夹
    如何在Mac下显示Finder中的所有文件
    xcode运行时出现attaching to
    ios sandbox
    使用sqlite存取数据
  • 原文地址:https://www.cnblogs.com/loaderman/p/6411270.html
Copyright © 2020-2023  润新知