我有以下课程:
public abstract class AbstractService<PersistenceClass extends IPersistence,
RequestClass, ResponseClass> {
public String processRequest(final String aRequestAsText)
{
[...]
final RequestClass request = mapper.readValue(aRequestAsText,
RequestClass);
[...]
}
}
mapper.readValue调用通常实现为
mapper.readValue(aRequestAsText, Request.class)
如果类RequestClass是泛型的,我该如何编码?
更新 1(06.09.2013):此代码似乎有效:
public class GenericTypeBindigsFinder implements IGenericTypeBindigsFinder {
@SuppressWarnings("rawtypes")
@Override
public List<Class> getGenericTypes(final Class aClass) {
final List<Class> result = new LinkedList<Class>();
final ParameterizedType gen = (ParameterizedType) aClass.getGenericSuperclass();
final Type [] types = gen.getActualTypeArguments();
for (int i = 0; i < types.length; i++) {
if (types[i] instanceof Class)
{
final Class clazz = (Class)types[i];
result.add(clazz);
}
}
return result;
}
}
你可以在这里找到相应的单元测试。