我有一个很长的故事。
无论如何,我有一个使用反射调用方法并返回通用结果的方法。
public static <V> JAXBElement<V> unmarshal(..., Class<V> valueType);
问题(?)是当我得到方法调用的结果时。我必须投它。
final Object result = method.invoke(...);
我发现我可以像这样result
投入JAXBElement<V>
。
@SuppressWarnings("unchecked")
final JAXBElement<V> result = (JAXBElement<V>) method.invoke(...);
return result;
还有其他方法可以做到这一点吗?我的意思是我得到了Class<V> valueType
使用。
如果没有,下面的陈述是否有点cumbersome
?
// no warning, huh? :)
final JAXBElement<?> result = (JAXBElement<?>) method.invoke(...);
return new JAXBElement<V>(result.getName(), valueType, result.getScope(),
valueType.cast(result.getValue()));
谢谢。