使用反射创建对象

xiaoxiao2021-03-01  19

package test; import java.lang.reflect.Constructor; class Monkey { public int age; public String name; // 空构造方法 public Monkey() { } // 带参数的构造方法 public Monkey(String name) { this.name = name; } // 私有的构造方法 private Monkey(String name, int age) { this.name = name; this.age = age; } @Override // 复写toString方法 public String toString() { return "name : " + name + " age:" + age; } } public class InstanceDemo { public static void main(String[] args) throws Exception { // 获取Monkey的类 Class<Monkey> clz = Monkey.class; Monkey m = null; // 通过一个空的构造方法创造一个类的实例 m = clz.newInstance(); System.out.println(m); // 获取Monkey的带参数的构造方法 Constructor<Monkey> con = clz.getConstructor(String.class); // 给实例赋值 m = con.newInstance("ape"); System.out.println(m); System.err.println("---------我是华丽的分割线-------------"); // 获取自己类私有的带参数的构造方法 Constructor<Monkey> cc = clz.getDeclaredConstructor(String.class, int.class); // 忽略访问权限 cc.setAccessible(true); // 按参数列表给实例赋值 m = cc.newInstance("ape1", 10); System.out.println(m); } }  
转载请注明原文地址: https://www.6miu.com/read-3650129.html

最新回复(0)