1. ホーム
  2. java

Jackson ObjectMapper を正しく再利用するにはどうすればよいですか?

2023-11-22 07:19:42

質問

ObjectMapperの動作とアプリケーション内での一般的な使用方法には満足しています。理解したいのは、ObjectMapper が再利用され、アプリケーション内で不要なインスタンスを作成しないようにするための、最適な実装方法です。

私の考えは、次のように Utils クラスで ObjectMapper を宣言することができるということです。

public class Utils {

    public final static ObjectMapper mapper = new ObjectMapper();

}

そして、これを様々な場所から参照するために、次のようなコードを使用することができます。

JsonSimple jsonSimple = Utils.mapper.readValue(jsonString, JsonSimple.class);

私はこの他の質問に遭遇しました( JacksonのObjectMapperはstaticフィールドとして宣言した方が良いのでしょうか? ) を見つけ、それが私のアプローチを促しました。おそらく重要な違いは、私が1つのクラス内だけでなく、多くの異なるクラス間でObjectMapperのインスタンスを共有したいことだと思います。

このアプローチは適切でしょうか、それとも何か見逃しているのでしょうか?

ありがとうございます。

どのように解決するのですか?

アプリケーションごとに単一のインスタンスを使用することは問題ありませんが、可視化された後に設定メソッドを呼び出さないようにする必要があります。