以前に解析されたJSONオブジェクトから正しいタイプとしてデータを抽出するメソッドが必要です。 JSONObject(生データ)は、地図を拡張し、それは次のようになります。Javaの汎用メソッドで型を判別するにはどうすればいいですか?
private <Type> Type getValue(String key, Type def)
{
if (!rawdata.containsKey(key)) return def;
if (!(rawdata.get(key) instanceof Type)) return def;
return (Type) rawdata.get(key);
}
instanceof
は明らかにコンパイル時エラーを生成します。パラメータdef
がデフォルト値で、キーが使用できないか、タイプが間違っている場合に返されます。しかしdef
もnullになることがありますので、def.getClass()
は機能しません。
正しいタイプのマップエントリの内容をどのように確認できますか?
可能重複[ジェネリック型のクラスを決定するには?](http://stackoverflow.com/questions/182636/how-to-determine-the-class-of-a-generic-タイプ) – Nicolas
私はあなたが誤って - メソッドシグネチャの余分な 'タイプ'と思う。 – questzen
@questzenいいえ、それは一般的な宣言ですが、標準の規約を使用すると読みやすくなりました。 'private T getValue(String key、T def)' –
assylias