я изучаю ksoap2-андроид проект, и я достиг запутанной точкуJava: типажи объект в другие несвязанный объекте
в коде ниже, как bodyOut типа org.ksoap2.serialization.SoapObject
в настоящее время typecasted для 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
, как создается связь между этими двумя объектами?
Попробуйте установить точку останова в этой инструкции. Посмотрите, какой тип объекта находится в 'bodyOut' и какие его суперклассы и реализованные интерфейсы. – Jerry101
Убедитесь, что SoapObject расширяет узел напрямую или косвенно – GurV
Они должны быть связаны каким-то образом, иначе код не будет компилироваться. Посмотри снова. – EJP