Java 8 使用 Class 和 <?> 泛型通配符将对象转换为实体
在 Java 8 中,可以使用 Class 类和泛型通配符 <?> 结合转换为实体。下面是一个示例代码:
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class Main {
public static void main(String[] args) {
Class<?> clazz = Person.class; // 获取Person类的Class对象
try {
Constructor<?> constructor = clazz.getConstructor(String.class, int.class); // 获取Person类的构造函数
Object person = constructor.newInstance("John Doe", 25); // 使用构造函数创建实例
if (person instanceof Person) {
Person p = (Person) person; // 将Object对象转换为Person对象
System.out.println("Name: " + p.getName());
System.out.println("Age: " + p.getAge());
}
} catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在上面的示例中,我们首先获取 Person 类的 Class 对象。然后,使用 getConstructor 方法获取 Person 类的构造函数,并通过 newInstance 方法使用构造函数创建实例。最后,通过使用 instanceof 关键字检查实例是否为 Person 类的对象,然后进行类型转换并访问实例的属性和方法。
原文地址: https://www.cveoy.top/t/topic/qnIq 著作权归作者所有。请勿转载和采集!