如何通过通用 class 使对象可打包
How to make an object parcelable through a generic class
我必须通过蓝牙在智能手机和远程桌面 (运行 Java) 之间发送和接收对象。智能手机和台式机都共享构成应用程序数据模型的一系列 classes。
我需要在智能手机应用程序上实现 Parcelable 接口,以便在从桌面应用程序接收到对象时,我可以通过处理程序将其发送回主 activity。不幸的是,这行不通,因为它会使 classes 在桌面应用程序上无法使用。
所以我的问题是:我可以在没有实现 Parcelable 接口的情况下将对象发送到桌面应用程序,然后在接收它们时通过通用 class 使它们成为 Parcelable。
类似的东西:
Object orgObject = new Object();
//Make an object Parcelable
ObjectParcelable objPble = GenericClass.makeParcelable(orgObject);
//Remove the Parcelable implementation
orgObject = GenericClass.undoParcelable(objPble);
我对这个问题的首选解决方案是将对象序列化为 JSON(例如,使用 Gson 库)并将其作为字符串发送。然后在另一方面,您可以使用您喜欢的库将 JSON 反序列化为一个对象。
您需要将要发送的对象转换为某种中间格式,例如 json 或 xml。然后你可以从 android 端发送这个序列化的消息,并在 java 端反序列化它,反之亦然。为此,您可以使用在 android 和 java 上以相同方式工作的库,例如 https://github.com/google/gson。通过这种方式,您可以在两个应用程序中为您的模型使用相同的 java class 文件。
我必须通过蓝牙在智能手机和远程桌面 (运行 Java) 之间发送和接收对象。智能手机和台式机都共享构成应用程序数据模型的一系列 classes。
我需要在智能手机应用程序上实现 Parcelable 接口,以便在从桌面应用程序接收到对象时,我可以通过处理程序将其发送回主 activity。不幸的是,这行不通,因为它会使 classes 在桌面应用程序上无法使用。
所以我的问题是:我可以在没有实现 Parcelable 接口的情况下将对象发送到桌面应用程序,然后在接收它们时通过通用 class 使它们成为 Parcelable。
类似的东西:
Object orgObject = new Object();
//Make an object Parcelable
ObjectParcelable objPble = GenericClass.makeParcelable(orgObject);
//Remove the Parcelable implementation
orgObject = GenericClass.undoParcelable(objPble);
我对这个问题的首选解决方案是将对象序列化为 JSON(例如,使用 Gson 库)并将其作为字符串发送。然后在另一方面,您可以使用您喜欢的库将 JSON 反序列化为一个对象。
您需要将要发送的对象转换为某种中间格式,例如 json 或 xml。然后你可以从 android 端发送这个序列化的消息,并在 java 端反序列化它,反之亦然。为此,您可以使用在 android 和 java 上以相同方式工作的库,例如 https://github.com/google/gson。通过这种方式,您可以在两个应用程序中为您的模型使用相同的 java class 文件。