Глубокое клонирование объекта с похожим в другом пространстве имен в Java - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть 2 веб-службы, объявленные в 2 разных пакетах в 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
   }
  }
}

Как показано в приведенном выше примере, вызов SayHello2 перенаправляет вызов другому веб-методу. Хотя HelloData в обоих пакетах похожи, они определены в разных пространствах имен. Как я могу сделать глубокое копирование из одного объекта в другой?

1 Ответ

0 голосов
/ 28 сентября 2010

Вы не можете глубоко копировать Объект типа Foo в Объект типа Bar.Если Foo является суперклассом Bar и является конкретным классом, технически вы можете это сделать, но не рекомендуется делать это в Effective Java.

...