0

オブジェクト (いくつかのパラメーター String または int を使用) を String に変換し、さらに重要なこととして、その String をオブジェクトに変換できるメソッドが必要です。この目的のためにコンバーターを開発する方法を知っていますか?

問題は、オブジェクトが他の開発者が使用する DTO であるため、toString()メソッドを変更できないことです。したがって、私は独自の toString メソッドを作成しましたが、コンバーターを確実に両方の方法で動作させる方法がわかりません。いくつかの解決策(オブジェクトをマップに保存するなど)を考えましたが、それらはすべて読みにくい/理解できないようです。すべての経験豊富なプログラマーが瞬く間にそれが何をするかを理解する通常の方法はありますか?

編集:まあ、私は連載を知っていますが、私の質問は明確ではありませんでした.申し訳ありません. 実際には、オブジェクトを ListView (JavaFX) に表示して、String "N°:xxxx; Version : 1" のように読みやすくしたいのですが、シリアル化されたオブジェクトは実際には審美的でも読みやすくもありません。

したがって、私の最終的な解決策は次のようなものです。

        listView.setCellFactory(new Callback<ListView<ProductDto>, ListCell<ProductDto>>() {
        @Override
        public ListCell<ProductDto> call(final ListView<ProductDto> productDtoListView) {
            return new ListCell<ProductDto>(){
                @Override
                protected void updateItem(final ProductDto productDto, final boolean b) {
                    if(productDto!=null){
                        setText(fromProductDtoToString(productDto));
                    }
                }
            };
        }
    });

このようにして、オブジェクト自体を ListView に格納し、オブジェクトを表す非常に美しい String を表示することができます。

御時間ありがとうございます。

ファビアン

4

1 に答える 1

3

たとえば、Jacksonを使用して、オブジェクトをJSONに、またはその逆に変換できます。この記事を確認してくださいJavaオブジェクトをJSONに/から変換する方法

必要に応じて、XML バインドも使用できます。

一般に、いくつかのシリアライゼーション ライブラリ/アプローチがあります。

  • XStream (XML 用、JSON 用ではない)
  • ジャクソン(JSON 用)
  • Jackson xml モジュール(XStream より高速)
  • Kryo (高速でコンパクトなバイナリ シリアル化形式)
  • Smile (Jackson 1.6 以降に付属するバイナリ形式)。
  • Java オブジェクトのシリアル化。
  • SimpleXMLは安定しているように見え、XStream の 2 倍の速度で実行されますが、より多くの構成作業が必要です
  • YamlBeans
  • SnakeYAML

Jackson JSON、Kryo、および Jackson Smile はすべて、古き良き Java オブジェクトのシリアル化よりも約 3 倍から 4.5 倍高速です。XStream は遅い側にあります。

于 2013-07-10T08:41:07.337 に答える