透過class.getConstructors()方法取得類別的所有公共建構方法。
如果該類別沒有公共建構方法,或者該類是數組類,或者該類反映一個基本類型或 void,則傳回長度為 0 的數組。
1 import lombok.Data; 2 3 /** 4 * Created by hunt on 2017/6/27. 5 * 测试的实体类 6 * @Data 编译后会自动生成set、get、无惨构造、equals、canEqual、hashCode、toString方法 7 */ 8 @Data 9 public class Person {10 private String name;11 private int age;12 public Person(){}13 public Person(String name){...}14 protected Person(int age){...}15 private Person(String name,int age){...}16 17 }
1 /** 2 * Created by hunt on 2017/6/27. 3 */ 4 public class NewInstanceTest { 5 public static void main(String[] args) { 6 Class<Person> personClass = Person.class;//获取Class实例 7 Constructor<?> constructor[] = personClass.getConstructors(); 8 for (Constructor<?> con : constructor) { 9 System.out.println(con);10 }11 12 }13 }
#
1 import lombok.Data; 2 3 /** 4 * Created by hunt on 2017/6/27. 5 * 测试的实体类 6 * @Data 编译后会自动生成set、get、无惨构造、equals、canEqual、hashCode、toString方法 7 */ 8 @Data 9 public class Person {10 private String name;11 private int age;12 private Person(String name){...}13 protected Person(int age){...}14 private Person(String name,int age){...}15 16 }
1 import java.lang.reflect.Constructor; 2 3 /** 4 * Created by hunt on 2017/6/27. 5 */ 6 public class NewInstanceTest { 7 public static void main(String[] args) { 8 Class<Person> personClass = Person.class;//获取Class实例 9 Constructor<?> constructor[] = personClass.getConstructors();10 System.out.println(constructor.length);11 for (Constructor<?> con : constructor) {12 System.out.println(con);13 }14 15 }16 }
#
透過class.getDeclaredConstructors()方法獲得類別的所有建構方法(公共,保護,默認,和私有建構)。
如果該類別存在一個預設建構方法,則它包含在傳回的陣列中。如果此Class物件表示一個接口,一個基本類型,一個陣列類別或void,則這個方法傳回一個長度為0的陣列。
1 /** 2 * Created by hunt on 2017/6/27. 3 */ 4 public class NewInstanceTest { 5 public static void main(String[] args) { 6 Class<Person> personClass = Person.class;//获取Class实例 7 Constructor<?> constructor[] = personClass.getDeclaredConstructors(); 8 System.out.println(constructor.length); 9 for (Constructor<?> con : constructor) {10 System.out.println(con);11 }12 13 }14 }
#注意:傳回的方法陣列中的元素沒有排序,也沒有任何特定的順序。
以上是獲得類別中的建構子實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!