Kotlin进阶实战
上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通过::操作符添加类名来引用构造函数,例如:

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