反射_Class对象功能_获取Constructor和反射_Class对象功能_获取Method
反射_Class对象功能_获取Constructor
Constructor:构造方法
>创建对象:
T newInstance(Object...initargs)
如果使用空餐数构造方法创建对象,操作可以简化:Class对象的newInstance方法
public class ReflectD03 { public static void main(String[] args) throws Exception { Class per = Person.class; //2.获取构造方法们: //Constructor<T> getConstructor(类<?>...parameterTypes) Constructor constructor = per.getConstructor(String.class,int.class); System.out.println(constructor); //创建对象 Object person = constructor.newInstance("张三",23); System.out.println(person); System.out.println("================"); //使用空餐创建 Constructor cons = per.getConstructor(); System.out.println(cons); //创建对象 Object person1 = cons.newInstance(); System.out.println(person1); //简化 Object o = per.newInstance(); System.out.println(o); //Constructor<?>[] getConstructors() //Constructor<?>[] getDeclaredConstructors() //Constructor<T> getDeclaredConstructor(类<?>...parameterTypes) } }
其余三个方法和Field同理
反射_Class对象功能_获取Method
Method:方法对象
>执行方法:
Object invoke(Object obj, Object...args)
>获取方法名称
String getName:获取方法名称
private static void ReflectD4() throws Exception { /* 3.获取成员方法们: >Method[] getMethods() >Method getMethod(String name, 类<?>... parameterTypes) >Method[] getMethods() >Method getMethod(String name, 类<?>... parameterTypes) */ Class per = Person.class; //Method getMethod(String name, 类<?>... parameterTypes) //获取指定方法名称 Method eat_me = per.getMethod("eat"); Person p = new Person(); //执行方法 eat_me.invoke(p); Method eat_me2 = per.getMethod("eat", String.class); //执行方法 eat_me2.invoke(p,"饭"); System.out.println("=========================="); //获取所有public方法 //Method[] getMethods() Method[] methods = per.getMethods(); for (Method method : methods) { System.out.println(method); String name = method.getName(); System.out.println(name); } //获取类名 String className = per.getName(); System.out.println(className); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix