0

こんにちは、別の VM (Oracle hotspot、jse) を使用してオブジェクトをシリアル化し、Android VM (dalvik) で逆シリアル化しています。何か問題はありますか?

4

1 に答える 1

2

「シリアライゼーション」とは、あなたが意味すると仮定するとSerializable、はい。シリアル化は、異なる VM 間で同じであるとは限りません。他のもの (XML、JSON など) を使用してください。

アップデート

あなたの最初のコメントには欠陥があり、500 文字に収まりません。

もちろんはい。Serializable を実装しないとシリアライズできません

才能のあるプログラマーはできます。才能のあるプログラマーは、データを XML、JSON、プロトコル バッファー、Thrift、ASN.l、YAML、およびその他の任意の数の形式にシリアル化できます。

実際に私がやっていることは、ObjectOutputStream(oracle hotspot) を使用してネットワークにオブジェクトを書き込み、ObjectInputStream を使用して Android でそのオブジェクトを読み取ることです。

才能のあるプログラマーは、上に挙げたような、プラットフォームに依存しないシリアライゼーション アプローチを使用します。これは、有能なプログラマーが、将来、Java ベースではないクライアントまたはサーバーが必要になる可能性があることを認識しているからです。

つまり、現時点ではこれで問題ありませんが、将来的には保証されないということです。

いいえ、私は書きました:

シリアル化は、異なる VM 間で同じであるとは限りません。

1 つの VM (Oracle など) を使用してシリアライズされたオブジェクトは、その VM を使用してデシリアライズできる必要があります。ある VM でシリアル化されたオブジェクトが、別の VM を使用してシリアル化解除できるという保証はありません。実際、開発者は、ユーザーがやろうとしていることを正確に実行しようとして苦労しています。これは、才能のあるプログラマーがプラットフォームに依存しないシリアル化構造を使用する理由のもう 1 つの例です。

于 2013-04-07T14:42:39.870 に答える