如何在Java中传递通用类型的Class变量?

问题描述 投票:0回答:2

我有一个期望上课的功能

someMethod(Class<T> c){}

对于普通班级来说,这很容易,您可以这样做

someMethod(MyObject.class)

但是由于某些原因,将无法正常工作>>

 someMethod(MyObject<User>.class)

不会编译。为什么?

我有一个函数,希望使用类someMethod(Class c){},对于普通类来说这很容易,您可以执行someMethod(MyObject.class),但是由于某些原因,这将无法使用someMethod(...

java generics
2个回答
0
投票

没有这种东西。 MyObject<User>.classMyObject.class完全相同。对于不同的子类型,没有单独的Class对象。 Class是一个only


0
投票

简单来说,是您的对象决定了对象的类型,就像您在创建对象时已经声明的那样。做object<Type>.class没有意义,因为它已在对象创建期间确定。如果需要,您始终可以进行类型转换。

© www.soinside.com 2019 - 2024. All rights reserved.