Class对象功能_获取Constructor
Constructor构造方法:
创建对象:
T newInstance(Object… initargs)
如果使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance方法
public class demo03 { public static void main(String[] args) throws Exception { /* Class对象功能-获取Constructir Constructor<?>[] getConstructors() Constructor<T> getConstructor(Class<?>... parameterTypes) Constructor<?>[] getDeclaredConstructors() Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) Constructor构造方法 创建对象: T newInstance(Object... initargs) 如果使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance方法 忽略访问权限修饰符的安全检查 setAccessible(true):暴力反射 */ //0.获取Person的Class对象 Class<Person> personClass = Person.class; //1.Constructor<T> getConstructor(Class<?>... parameterTypes) Constructor<Person> constructor = personClass.getConstructor(String.class, int.class);//获取构造器 System.out.println(constructor); System.out.println("-----------"); Constructor<Person> constructor1 = personClass.getConstructor(); System.out.println(constructor1); //创建有参构造对象 Person person = constructor.newInstance("张三", 23); System.out.println(person); //创建空构造对象 Person person2 = personClass.newInstance(); System.out.println(person2); } }
运行结果:
Class对象功能-获取Method
Method :方法对象:
执行方法:
Object invoke(Object obj,Object... args)
获取方法名称:
String getName:获取方法名
public class demo_04 { public static void main(String[] args) throws Exception { Class<Person> personClass = Person.class; /* Method :方法对象: 执行方法: Object invoke(Object obj,Object... args) 获取方法名称: String getName:获取方法名 */ //获取指定名称的方法(无参构造) Method eat = personClass.getMethod("eat"); //创建对象 Person person = new Person(); //执行方法 eat.invoke(person); //有参构造 Method eat1 = personClass.getMethod("eat", String.class); eat1.invoke(person, "饭"); System.out.println("-----------"); //获取所有public修饰的方法 Method[] methods = personClass.getMethods(); for (Method method : methods) { System.out.println(method); //获取方法名 String name = method.getName(); System.out.println(name); //忽略访问权限修饰符的安全检查 // method.setAccessible(true); } //获取类名 String className = personClass.getName(); System.out.println(className); } }
运行结果:
标签:System,Method,Constructor,Class,personClass,out From: https://www.cnblogs.com/qihaokuan/p/16625665.html