有没有办法知道Android包裹中的包裹类型是什么?

问题描述 投票:0回答:1

我正在制作一个Android应用程序,该应用程序通过网络以字节数组的形式发送2种类型的对象,这些对象实现了可打包接口(分别称为objectA和objectB)。但是在接收端,我需要知道哪种类型的物体到达了包裹中。 parcel.readValue()方法仅返回Object,因此在接收端,我不知道应该重新创建objectA还是objectB。如何才能做到这一点?包裹中是否包含描述原始对象类型的元数据?

编辑:语言是Java

java android networking serialization parcelable
1个回答
0
投票

我想您可以访问可能是收到的对象的可能类型的类。在Java中,您可以简单地使用instanceof运算符来检查您收到的对象是什么:

if (yourObject instanceof YourClass) {
  // Your code here
}

对于包裹,有一个readValue方法可以接受类加载器,用您的类类加载器调用此方法,它应该可以工作,例如:

Point pointFromParcel = (Point) parcel.readValue(Point.class.getClassLoader());

https://developer.android.com/reference/android/os/Parcel#readValue(java.lang.ClassLoader)

© www.soinside.com 2019 - 2024. All rights reserved.