Java 8 使用 Class 和泛型进行类型转换与实例化
在 Java 8 中,可以使用Class来进行类型转换和实例化。下面是一个示例代码,演示了如何使用Class结合泛型来进行转换为实体:
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Class<?>> entityMap = new HashMap<>();
entityMap.put("Person", Person.class);
entityMap.put("Animal", Animal.class);
String entityType = "Person";
Class<?> entityClass = entityMap.get(entityType);
if (entityClass != null) {
try {
Object entity = entityClass.getDeclaredConstructor().newInstance();
if (entity instanceof Person) {
Person person = (Person) entity;
// 对person进行操作
person.setName("John");
person.setAge(30);
System.out.println(person.getName() + ", " + person.getAge());
} else if (entity instanceof Animal) {
Animal animal = (Animal) entity;
// 对animal进行操作
animal.setType("Dog");
animal.setAge(5);
System.out.println(animal.getType() + ", " + animal.getAge());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
class Person {
private String name;
private int age;
// 省略构造方法和getter/setter方法
}
class Animal {
private String type;
private int age;
// 省略构造方法和getter/setter方法
}
在上面的代码中,entityMap是一个存储实体类型和对应Class的映射关系的Map。根据需要转换的实体类型,从entityMap中获取对应的Class对象。然后使用Class对象来实例化一个实体对象,并根据实体类型进行类型转换。最后,可以对转换后的实体对象进行操作。
注意,上述代码中的Person和Animal类需要提供默认的构造方法以及相应的getter和setter方法。
请根据实际需求修改上述代码,以适应不同的实体类型和操作。
原文地址: https://www.cveoy.top/t/topic/qnIC 著作权归作者所有。请勿转载和采集!