从Java中的类名获取泛型类型参数

时间:2016-03-05 02:43:25

标签: java generics

我正在使用Jayway JsonPath库,它具有以下静态方法

public static <T> T read(Object json, String jsonPath, Predicate... filters) {
    return parse(json).read(jsonPath, filters);
}

有效的通话将是

Object document = Configuration.defaultConfiguration().jsonProvider().parse(jsonPayload);
desiredObject = JsonPath.<DesiredClass>read(document, "$.path1.path2");

现在,这是我的问题。我有表示className的字符串,所以我从中得到一个类对象,并希望将它作为泛型类型参数传递给这个静态方法

entityClass = Class.forName("com.company.domain." + desiredClassName);
desiredObject = JsonPath.<WHAT-TO-PUT-HERE>read(document, "$.path1.path2.");

我试过 - 类型转换,Class<entityClass>等但没有任何效果。什么是正确的语法?

1 个答案:

答案 0 :(得分:0)

你可以像这样使用它:

JsonPath.parse(document).read(entityclass,"$.path1.path2");