我有一段有效的代码,我想问一下究竟发生了什么?
Class<?> normalFormClass = null;
– -添加 – –
通配符“<?>”对我来说是困惑的部分.为什么要使用它而不是使用它(泛型)?
解决方法
这意味着它可以是任何类型的类. ?是表示所有类型集合的通配符,或“任意”.所以你以后可以这样做
Integer normalForm = new Integer(); normalFormClass = normalForm.getClass();
要么
String normalForm = new String(); normalFormClass = normalForm.getClass();
如果您不了解Java上的泛型,请阅读http://java.sun.com/developer/technicalArticles/J2SE/generics/
至于为什么,我认为可能是严格表达你在任何地方使用泛型,你的代码与旧的Java版本不兼容,或者可能关闭一些触发快乐的IDE.是的,
Class foo
和
Class<?> foo
是等价的.