1

だから、私が持っているいくつかのクラスのカスタムシリアライザーを書きたいと思います。2 つの形式が必要です。1 つは人間が読み取り可能で編集可能な yaml 形式で、もう 1 つは内部使用のみのバイナリ形式です。Externalizable については知っていますが、2 つの形式があるため、これが適切かどうかはわかりません。

理想的には、カスタム シリアライザーを個別のパッケージの個別のクラスとして使用したいと考えています。これは、汎用シリアライザーを作成する場合、特定のパッケージ内のクラスだけでなく、すべてのクラスに使用したいためです。また、シリアライズしたいクラスへのコードアクセスが常にあるとは限らないため、JavaBeans から離れたいと思っています。

クラス内のプライベート変数にアクセスしたいのですが、リフレクションを使用してプライベート変数を「無効にする」ことができますが、セキュリティのために多くの Java システムでこれを実行することはできません。 ?

汎用シリアライザーを作成するにはどうすればよいですか?

4

1 に答える 1

1

独自のカスタム シリアライズ可能を記述します。バイナリ エンコーディングには、Java のシリアル化を使用します。そして、それを人間が読める形式にエンコードするために、クラスを JSON/XML 形式に変換できます。GoogleGsonライブラリを使用して、Java クラスを JSON に、またはその逆に変換できます。

したがって、一般的なシリアライゼーションを記述するには、Java の組み込みのシリアライゼーション API と独自の手法を組み合わせて、オブジェクトを人間が読める形式に変換します。

アップデート

リフレクション手法を使用して、人間が判読できる独自のカスタム形式のオブジェクトを作成できます。Reflection の詳細については、私のブログをご覧ください。

于 2013-05-03T18:12:05.723 に答える