我在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
我无法更改该功能的参数。
期待您的回复。 感谢。
答案 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 类 你可以澄清你为什么要这样做吗?