獲取所有構造方法,獲取指定單參構造方法(指定類型為String):
1 package com.mldn.demo; 2 3 import java.lang.reflect.Constructor; 4 5 class Mail{ 6 private String msg; 7 public Mail() {} 8 public Mail(String msg) { 9 System.out.println("【構造方法】調用Mail類單參構造方法,實例化對象。"); 10 this.msg = msg; 11 } 12 @Override 13 public String toString() { 14 return "【toString()覆寫】消息內容:" + this.msg; 15 } 16 } 17 public class JavaReflectDemo { 18 public static void main(String[] args) throws Exception { 19 Class<?> cls = Mail.class; 20 Constructor<?> constructors[] = cls.getDeclaredConstructors(); 21 System.out.println("獲取所有父類構造方法:" ); 22 for(Constructor<?> con: constructors) { 23 System.out.println(con); 24 } 25 26 Constructor<?> con = cls.getDeclaredConstructor(String.class); 27 Object object = con.newInstance("www.mldn.com"); 28 System.out.println("獲取指定單參構造方法:"+object); 29 } 30 }
運行結果:
獲取所有父類構造方法: public com.mldn.demo.Mail() public com.mldn.demo.Mail(java.lang.String) 【構造方法】調用Mail類單參構造方法,實例化對象。 獲取指定單參構造方法:【toString()覆寫】消息內容:www.mldn.com