java中不同命名空间中的对象深度克隆到相似对象
我在 java 的 2 个不同包中声明了 2 个 Web 服务
package com.HelloWorld
@WebService(targetNamespace="http://www.example.com/Hello")
@SOAPBinding(parameterStyle = ParameterStyle.WRAPPED, style = Style.DOCUMENT, use = Use.LITERAL)
{
public class Hello
{
@WebMethod
@WebResult(name="SayHelloResult", targetNamespace="http://www.example.com/Hello")
Public HelloData SayHello()
{
HelloData data = new HelloData();
// Some work
return data;
}
}
}
package com.HelloWorld2
@WebService(targetNamespace="http://www.example.com/Hello2")
@SOAPBinding(parameterStyle = ParameterStyle.WRAPPED, style = Style.DOCUMENT, use = Use.LITERAL)
{
public class Hello2
{
@WebMethod
@WebResult(name="SayHelloResult", targetNamespace="http://www.example.com/Hello2")
Public HelloData SayHello2()
{
com.Hello helloObject = new com.Hello.HelloWorld();
com.Hello.HelloObject helloData= helloObject.SayHello();
// need to clone helloData to com.HellowWorld2 type object
// return a com.HelloWorld2.HelloData object
}
}
}
如上面的示例所示,对 SayHello2 的调用将调用重定向到另一个 Webmethod。尽管两个包中的 HelloData 相似,但它们定义在不同的命名空间中。如何从一个对象到另一个对象进行深度复制?
I have 2 web services declared in 2 different packages in java
package com.HelloWorld
@WebService(targetNamespace="http://www.example.com/Hello")
@SOAPBinding(parameterStyle = ParameterStyle.WRAPPED, style = Style.DOCUMENT, use = Use.LITERAL)
{
public class Hello
{
@WebMethod
@WebResult(name="SayHelloResult", targetNamespace="http://www.example.com/Hello")
Public HelloData SayHello()
{
HelloData data = new HelloData();
// Some work
return data;
}
}
}
package com.HelloWorld2
@WebService(targetNamespace="http://www.example.com/Hello2")
@SOAPBinding(parameterStyle = ParameterStyle.WRAPPED, style = Style.DOCUMENT, use = Use.LITERAL)
{
public class Hello2
{
@WebMethod
@WebResult(name="SayHelloResult", targetNamespace="http://www.example.com/Hello2")
Public HelloData SayHello2()
{
com.Hello helloObject = new com.Hello.HelloWorld();
com.Hello.HelloObject helloData= helloObject.SayHello();
// need to clone helloData to com.HellowWorld2 type object
// return a com.HelloWorld2.HelloData object
}
}
}
As shown in the above example, a call to SayHello2 redirects the call to another webmethod. Although HelloData in both the packages are similar, they are defined in different namespaces. How can I do a deep copy from one object to another?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法将 Foo 类型的对象深度复制到 Bar 类型的对象中。如果 Foo 是 Bar 的超类并且是一个具体类,从技术上讲你可以这样做,但建议你不要在 有效的 Java。
You cannot deep copy an Object of type Foo into an Object of type Bar. If Foo is a super class of Bar and is a concrete class, technically you can do it, but it's advised that you not do this in Effective Java.