获取所有构造方法,获取指定单参构造方法(指定类型为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