Mic*_*ael 1 java generics static-methods
我需要在实用程序类中添加一个方法,其中包含一些静态方法,这些方法从JSON字符串中解析事物并返回一组数据.
问题是这些东西有各种各样的子类型,所以我创建了这个方法:
public static <E extends Thing> E[] parseThingsFromJSON(String body) {
return parser.fromJson(body, E[].class);
}
Run Code Online (Sandbox Code Playgroud)
调用者如何告诉这个方法是什么E?或者有更好的方法吗?
你需要通过它.
public static <E extends Thing> E[] parseThingsFromJSON(String body, Class<E[]> eClass) {
return parser.fromJson(body, eClass);
}
Run Code Online (Sandbox Code Playgroud)
泛型主要是编译时功能.这意味着它在运行时不可用(有一些例外)
在这种情况下,要使泛型类型在运行时可用,您必须将其作为附加参数传递.