确定类是否具有构造函数方法

时间:2018-04-06 00:40:09

标签: java class object constructor

如何判断Animal类或Mammal类是否具有构造函数?

动物a =新的哺乳动物(“大象”);

1 个答案:

答案 0 :(得分:0)

因此,要回答您的问题,所有类必须至少有一个构造函数,即使其他类无法访问它们。

您可以识别开发人员手动添加的构造函数,请参阅下面的声明构造函数的代码示例。注释解释了如何声明构造函数。

public class Animal {

    /*
    *Constructors can be identified in code where the name is the same as the class and has no return type. 
    * The below constructor will require a String to be supplied in order to create an object of type animal.
    */
    public Animal(String name){
        //constructor code goes in here 
    }

}

即使该类没有像下面示例那样的明显声明的构造函数,也会在编译类时由JVM生成。

public class Animal {
    /*
     *Just because there is no visible constructor does not mean that one is not available, 
     *By default if no constructor is written a default no argument constructor will be provided after the code is compiled
     *Such that this class can be instantiated as such new Animal() 
     */
}

java中的默认构造函数是public,并且没有提供参数,以便上面的示例可以实例化为new Animal()。

最后,为了找出为特定类声明的构造函数,可以使用Java的反射库,下面是如何访问每个声明的构造函数的示例。

public class PrintConstructorsForClass {

    public static void main(String[] args) {
        for (Constructor<?> constructor : Animal.class.getDeclaredConstructors()) {
            //Code to inspect each constructor goes in here. 
        }
    }
}