1. ホーム
  2. java

[解決済み] <T>は型に解決できないのですか?

2022-02-12 02:15:43

質問

jsonの文字列を変換して List<Someclass> jackson json library を使っています。

public static List<T> toList(String json, Class<T> type, ObjectMapperProperties objectMapperProperties){

        ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper(objectMapperProperties);

        try {
            return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, type));
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

ということで、もし私が Attribute.class として type を返さなければならない。 List<Attribute> .

しかし、これではコンパイル時にエラーが発生します。

T cannot be resolved to a type

ジェネリックの部分がよくわからないと思います。何かお手伝いいただけると幸いです。

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

を宣言する必要があります。 T をジェネリックメソッドで最初に作成します。

public static <T> List<T> toList(String json, Class<T> type,  ObjectMapperProperties objectMapperProperties)

詳細は、汎用メソッドに関するOracleのドキュメントを参照してください。

https://docs.oracle.com/javase/tutorial/extra/generics/methods.html