我承认我很想知道任何实际情况,其中需要将 java.lang.Class 的对象类型或简单的任何 *.class 名称传递给 java 中的方法,并且可能会使用这样的对象:
如下面的代码所示,虽然下面是一个构造函数,但我想知道是否有与此相关的一般用法:
public CustomerFacadeREST() {
super(Customer.class);
}
提前致谢!!
最佳答案
这与泛型方法结合使用非常有用:由于类型删除,泛型方法无法使用其泛型类型参数 T
在诸如 T.class
之类的结构中。有时,这可能是必要的 - 例如,创建类 T
的新实例.
自 java.lang.Class<T>
在类型本身上是通用的(对于 Customer
,这将是 java.lang.Class<Customer>
),并且因为 Class
object 可以用作静态类型对象工厂(即它的 newInstance
方法是通用的,返回 T
),您可以在编译时执行类型安全实例化检查。
参见Class Literals as Runtime-Type Tokens有关此技术的更多信息。
关于java - 与将 java.lang.Class<T> 类型的对象传递给方法相关的实际场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078547/