了解类<>
我遇到了这个代码:
public class RestfulAdage extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(Adages.class);
return set;
}
}
我不明白是什么意思。Class<?>
我遇到了这个代码:
public class RestfulAdage extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(Adages.class);
return set;
}
}
我不明白是什么意思。Class<?>
Class<?>
引用未知类型的类。该表示法使用未绑定的泛型,该泛型对可添加到集合中的类的类型没有限制。例如,以下内容将不起作用
Set<Class<String>> set = new HashSet<Class<String>>();
set.add(Adages.class); // type not allowed
类是一个可参数化的类,因此可以使用语法 Class,其中 T 是一个类型。通过编写 Class,您可以声明一个 Class 对象,该对象可以是任何类型的(? 是通配符)。类类型是包含有关类的元信息的类型。
通过指定泛型类型的特定类型来引用泛型类型始终是一种很好的做法,通过使用 Class,您可以遵守这种做法(您知道 Class 是可参数化的),但您不会将参数限制为具有特定类型。
有关泛型和通配符的参考:http://docs.oracle.com/javase/tutorial/java/generics/wildcards.html
关于类对象和反射的参考(Java语言用于自省自身的功能):http://java.sun.com/developer/technicalArticles/ALT/Reflection/