
上QQ阅读APP看书,第一时间看更新
7.3.2 构造函数引用,获取类的构造函数
1.Java获取类的构造函数
Java在获取Class实例之后,可以获取其中的构造函数。Java获取类的构造函数对应的是java.lang.reflect.Constructor,有以下5种方式:
//获取参数列表是parameterTypes,访问 public的构造函数 public Constructor getConstructor(Class[] parameterTypes) //获取所有public构造函数 public Constructor[] getConstructors() //获取参数列表是parameterTypes,并且是类自身声明的构造函数,访问控制符包含 public、 protected和private的函数 public Constructor getDeclaredConstructor(Class[] parameterTypes) //获取类自身声明的全部构造函数,包含 public、protected和private的函数 public Constructor[] getDeclaredConstructors() //如果类声明在其他类的构造函数中,返回该类所在的构造函数,如果存在则返回,不存在则返回null public Constructor getEnclosingConstructor()
2.Kotlin获取类的构造函数
Kotlin在获取KClass实例之后,可以获取它的全部构造函数。
//类中声明的所有构造函数 public val constructors: Collection<KFunction<T>>
Kotlin通过::操作符添加类名来引用构造函数,例如:

对于含有参数的构造函数,也一样适用:
