考虑了官方Java教程和过去的一些经验之后,
几乎没有什么东西不清楚,所以如果有人用简单的方式解释它,我会很高兴。
Class valueClass = agp.getValueClass(); ///the method's return type is Class<?>
if(Double.class.equals(valueClass))
{
...
}
这样,我的IDE会显示原始警告。我已将第一行更改为
Class<?> valueClass = agp.getValueClass();
我还有什么其他合理的选择,它们会带来什么影响?
先感谢您。
最佳答案
有一种选择:
Double.class.isAssignableFrom(valueClass)
它不仅检查
valueClass
是否相等,而且“允许” Double的子类。另外,您的
agp
变量也可能包含该值。假设有一个getValue()
方法,该方法可能返回Object
类型,则可以使用instanceof
:if(agp.getValue()!=null){
if(agp.getValue().getClass() instanceof Double){ //getClass() returns the runtime class
//it's a (subclass of) Double!
}
}
关于java - Java泛型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3500216/