gpt4 book ai didi

java - 如何将同一模式但在不同代中生成的类设置为彼此的请求/响应对象而不遍历它们?

转载 作者:行者123 更新时间:2023-12-01 13:29:58 24 4
gpt4 key购买 nike

我很难提出这个问题,这可能就是为什么我还没有找到令我满意的解决方案的原因。

进一步说明:我有一个方案,我在 2 个不同的场合但使用相同版本的库时使用 jaxws 运行该方案。一个是我的服务的输入,另一个是输出(是的,现在相同)

我得到了相同的结构,假设这就是我得到的:

//1st generation
package package1;
public class Object1{
int number;
//getters and setters
}

//2nd generation
package package2;
public class Object2{
int number;
//getters and setters
}

我将如何将两个类中的对象设置为彼此? (对象1 = 对象2)

就我而言,这些类具有相同的名称。我以前没有使用过反射,根据我所读到的内容,由于性能要求,在这个特定的服务中使用它是一个错误。如果有某种方法可以修改类以实现公共(public)接口(interface),那么它可能会起作用。

最佳答案

也许您正在寻找一个映射框架?

There is one here (that claims to be fast) --> https://code.google.com/p/orika/

最简单的方法是使用 BeanUtils,它使用反射:

http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/BeanUtils.html (Look for the copyProperties method)

可以这样完成:

BeanUtils.copyProperties(dest, source);

由于性能是一个问题,我会首先选择 BeanUtils 版本并尝试测量它的速度。它可能足够快,因为这是在内存操作中。但是,如果您有一个包含许多嵌套级别的大型对象图,它可能不起作用,因为所有依赖项都位于不同的包中,因此是不同的类型。

但是,如果您可以控制 XML 模式,则可以为您正在使用的类型定义一个公共(public)命名空间,因此只会创建这些类的一个版本(它们将共享相同的包)。

关于java - 如何将同一模式但在不同代中生成的类设置为彼此的请求/响应对象而不遍历它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21625400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com