关于getConstructor参数的问题

来源:3-2 Constructor类的概述和使用

不思议的探索者

2020-03-18 16:46:28

http://img.mukewang.com/climg/5e71df9409ae41c406550166.jpg

请问Class<?>... parameterTypes 是什么意思, <?>... 这个语法不太理解。。。 

写回答

1回答

好帮手慕小班

2020-03-18

同学你好。Class<?>... parameterTypes

 Class<?>代表类型,中间的"..."表示无限参数,parameterTypes表示该无限参数的名字

parameterTypes 就是表示参数数组。

如上所示,getConstructor就是获取对应的有参数构造函数。

public class Person {
    private int age;
    private String name;
 
    public Person( String name,int age) {
        this.age = age; /*构造函数Person(有参数)*/
        this.name = name;
    }
 
    public Person() {
      /*构造函数Person(无参数)*/
    }
    
}

在调用getConstructor方法时

public class Main {
    public static void main(String[] args)  throws Exception{
 
        //当我不想 newInstance初始化的时候执行空参数的构造函数的时候
        //可以通过字节码文件对象方式 getConstructor(paramterTypes) 获取到该构造函数
        String classname="demo2.Person";
        //寻找名称的类文件,加载进内存 产生class对象
        Class cl=Class.forName(classname);
        
        //获取到Person(String name,int age) 构造函数
        //对应的参数类型传入,获取到构造函数的内容
        //               name        age
        Constructor con=cl.getConstructor(String.class,int.class);
 
        //通过构造器对象 newInstance 方法对对象进行初始化 有参数构造函数
        Object obj=con.newInstance("神奇的我",12);
    }
}

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 8016 问题

查看课程