反射获取构造方法

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

 

点赞