2016-06-15 5 views
0

スタティックメソッドを作成し、そのメソッドでjacksonを使用してjsonをオブジェクトに変換したいとします。私は静的メソッドのパラメータとしてクラスを使用する方法を理解できません。静的メソッドのパラメータとしてのクラス

ここに私のコード:

static Object stringToObject(String jsonString, Class someClass) { 
    ObjectMapper mapper = new ObjectMapper(); 

    SomeClass Object = mapper.readValue(jsonString, someClass.class); 
    //handling some exception 


    return Object; 
} 

そのコードがエラーでしょう...誰かが私にアドバイスを与えることができ感謝

+0

パラメータとして渡すクラスに応じて別のオブジェクトを作成しようとしていますか? – CantThinkOfAnything

+0

はい正確にsir – navotera

答えて

3

あなたは常に型の安全性を維持したいのでことをどのように達成するために最良のソリューションです型変数を持つメソッドであるgeneric methodを使用します。あなたの状況ObjectMapper::readValue

は何が必要そうすでに一般的な方法であり、あなたの宣言のための正しい構文を使用することです:

static <T> T stringToObject(String jsonString, Class<T> clazz) { 
    ObjectMapper mapper = new ObjectMapper(); 
    return mapper.readValue(jsonString, clazz); 
} 

static void test() { 
    Foo foo = stringToObject("...", Foo.class); 
} 

このようにJavaのtype inferenceは、その作業を行うことができますし、あなたがする必要はありません何でも指定してください。

+0

かなりタイトな:o – CantThinkOfAnything

+0

ありがとう.. .. :) – navotera

関連する問題