Java:将对象类型转换为不同的非相关对象

时间:2016-12-11 03:25:18

标签: java android

我正在研究ksoap2-android项目,我遇到了一个令人困惑的问题

在下面的代码中,如何将org.ksoap2.serialization.SoapObject类型的bodyOut强制转换为org.kxml2.kdom.Node对象?而两者之间没有任何关系。

在应用程序中,我声明了以下内容:

SoapObject soapRequest = new SoapObject()
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope()
envelope.setOutputSoapObject(soapRequest);

并且class SoapSerializationEnvelope {}我们有:

public void setOutputSoapObject(Object soapObject) {
   this.bodyOut = soapObject;}

public void writeBody(XmlSerializer writer) throws IOException {
   if (encodingStyle != null) {
       writer.attribute(env, "encodingStyle", encodingStyle);
   }
((Node) this.bodyOut).write(writer);}

我们将另一个类放在另一个包Node

public class Node {}

如果类型转换取决于根class Object,那么两个对象之间的关系如何实例化?

1 个答案:

答案 0 :(得分:0)

我认为您正在查看console.error(err) console.trace(err) writeBody的源代码。该方法在SoapEnvelope ...和中被覆盖,版本不会将SoapSerializationEnvelope对象转换为bodyOut

我的分析基于以下来源链接:

(在提交82d9ac4c90bb818f9e8efe8049ca1978cd019d70。)

话虽如此,Node中这些方法的实现看起来似乎不起作用......如果您曾经实例化并尝试使用SoapEnvelope而不是SoapEnvelope