Java:泛型参数上带有.class的泛型方法[重复]
Posted
技术标签:
【中文标题】Java:泛型参数上带有.class的泛型方法[重复]【英文标题】:Java: generic method with .class on generic parameter [duplicate] 【发布时间】:2016-03-31 06:11:15 【问题描述】:所以我现在正在度假,没有电脑。但是...不能停止思考代码。完全着迷。无论如何,我现在不能自己测试这个,所以在这里询问这是否可行:
public <T> void foo(T t)
doSomething(T.class);
我对类型擦除一无所知,但从来没有这样想过。在这种情况下,T 将是传递给此方法的实际对象,因此,由于泛型在运行时使用的隐式转换,T 的实际类类型是否会在运行时传递给 doSomething?还是 T 本质上只是 Object 的事实是否会破坏这一点?
【问题讨论】:
这不是一个重复的问题,OP 在问为什么这不起作用,他提供了一个不同的例子。此外,他并没有像其他问题那样要求解决方法!我没有重新打开权限,但这不能标记为重复 【参考方案1】:否那是行不通的。
您无法在运行时获得泛型类型的 class
或 getClass()
。
如果您需要对实际类本身进行处理,您必须存储它并明确地将其分配给Class<T> genericClass
之类的东西。
public <T> void foo(T t, Class<T> genericClass) ...
【讨论】:
以上是关于Java:泛型参数上带有.class的泛型方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章