我正在研究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
,那么两个对象之间的关系如何实例化?
答案 0 :(得分:0)
我认为您正在查看console.error(err)
console.trace(err)
中writeBody
的源代码。该方法在SoapEnvelope
...和中被覆盖,版本不会将SoapSerializationEnvelope
对象转换为bodyOut
。
我的分析基于以下来源链接:
(在提交82d9ac4c90bb818f9e8efe8049ca1978cd019d70。)
话虽如此,Node
中这些方法的实现看起来似乎不起作用......如果您曾经实例化并尝试使用SoapEnvelope
而不是SoapEnvelope