java - 将非空对象转换为动态对象

标签 java

我有这个方法:

 public static Object filterObject(Object object, String objectName){
      ...
 }

这是我如何调用它:

Entity1 entity1 = new Entity1();
//Call some setters
Test.filterObject(entity1, "Entity1");

我想将 Object 转换为该方法内部的 Entity1 。我怎样才能做到这一点?

编辑 我的问题是如何将object转换为objectName类的实例?

最佳答案

您应该使用泛型。

例如,

public static <T> T filterObject(T object, String objectName) {
  ...
}

Entity1 entity1 = new Entity();
Test.filter(entity1, "Entity1");

通过使用泛型,您不需要进行强制转换,并且可以避免 ClassCastException。基本上 T 可以替换为对象的类型。

此外,如果您想保证传递的对象是其他类型的子类,还可以使用以下内容。

public static <T extends ParentClass> T filterObject(T object, String objectName) {
  ...
}

编辑:如果您不需要不同类型的混合包,那么由于上述原因,您应该使用泛型来进行转换。请参阅这篇文章,了解是否应该使用泛型的详细说明。 https://stackoverflow.com/a/11402351/5085407

关于java - 将非空对象转换为动态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31890182/

相关文章:

java.text.ParseException : Unparseable date: "20050327020000" 异常

java - java客户端可以知道服务器是否请求证书吗?

java - Xuggle 无法打开内存输入

java - java中的Socket.getInputStream().read()方法会做什么?

java - 为什么 ReversedLinesFileReader 这么慢?

java - 在 Java 中区分关闭比 Runtime.setShutdownHook()

java - 的整数值给出了意想不到的结果

Java servlet - 从子页面转发/重定向

java - Spring 数据 : Configuring using only Java?

java - 连接到127.0.0.1端口8080失败: Connection refused