用Java复制对象

时间:2012-04-09 07:32:53

标签: java

我在order中有一个名为package com.abc的班级 我在名为order

的不同项目的不同包中有另一个名为com.bcd的类

两个订单类都有相同的代码获取,设置函数和变量而没有任何变化。

然后我有对象

com.abc.order obj1 = new com.abc.order();
com.bcd.order obj2 = new com.bdc.order();

现在我必须将参数传递给函数,它只需要obj2作为参数 如何将obj1的类型转换为obj2

的类型

我无法更改该功能的参数。

期待您的回复。 感谢。

5 个答案:

答案 0 :(得分:1)

查看Apache Commons BeanUtils,将属性从一个对象复制到另一个对象。

http://commons.apache.org/beanutils/v1.8.3/apidocs/index.html

这样的东西
BeanUtils.copyProperties(obj2, obj1)

应该这样做。

答案 1 :(得分:0)

您必须复制每个字段。您可以使用BeanIntrospector来帮助您执行此操作。

答案 2 :(得分:0)

您可以通过在代码中再次输入该功能来重载该功能,但这次只需要com.abc.order的实例。当然也要保留另一个。

如果您已经定义了这两个功能,它将起作用。问题是重复。我以前从未见过这样的情况,复制一个类并在同一个代码中使用它们听起来不是很好的编码习惯。你能把它们互相投射吗?像(obj1) obj2?我认为你不能,但我不是百分之百确定......

答案 3 :(得分:0)

最好的解决方案,如果你可以消除两个类中的一个,特别是如果它们是相同的。

如果可以,请重新命名(首字母大写,如果可能的话)。

最后,如果您无法执行上述任一操作,请在一个或两个类上编写转换方法,在所有使用中保留其包的类之间进行解析。

import com.abc.order;

abc.order obj1 = new abc.order(); 
bcd.order obj2 = new bdc.order();

答案 4 :(得分:0)

您可以创建 com.abc.order

com.bdc.order 类 你可以澄清你为什么要这样做吗?