如何通过泛型类使对象可分割

时间:2015-08-24 07:37:34

标签: java android parcelable android-handler

我必须通过蓝牙在智能手机和远程桌面(运行Java)之间发送和接收对象。智能手机和桌面共享一系列构成应用程序数据模型的类。

我需要在智能手机应用程序上实现Parcelable界面,以便在从桌面应用程序接收对象时,我可以通过处理程序将其发送回主要活动。不幸的是,这不会起作用,因为它会使桌面应用程序上的类无法使用。

所以我的问题是:我可以将没有实现Parcelable接口的对象发送到桌面应用程序,然后在接收时通过泛型类使它们成为Parcelable。

类似的东西:

Object orgObject = new Object();

//Make an object Parcelable
ObjectParcelable objPble = GenericClass.makeParcelable(orgObject);

//Remove the Parcelable implementation
orgObject = GenericClass.undoParcelable(objPble);

2 个答案:

答案 0 :(得分:1)

此问题的首选解决方案是将对象序列化为JSON(例如,使用Gson库)并将其作为字符串发送。然后在另一侧,您可以使用首选库将JSON反序列化为对象。

答案 1 :(得分:0)

您需要将要发送的对象转换为某种中间格式,例如json或xml。然后你可以从android端发送这个序列化的消息,并在java端反序列化它,反之亦然。您可以使用在android和java上以相同方式工作的库,例如https://github.com/google/gson。通过这种方式,您可以在两个应用程序中为您的模型使用相同的java类文件。