2010-10-03 49 views
4

给定具有以下结构的类。我试图确定泛型方法的调用者分配的参数T的类型。在C#中我会使用“默认(T)”或“typeof(T)”,但我试图用Java来做到这一点。有谁知道如何/如果我可以做到这一点?我并不需要一个实例,我只需要类定义。在运行时确定通用方法参数的类型

回答

4

你不能做到这一点。你可以做的是使方法签名是这样的:

public boolean isSupportable(Class<?> type) 

然后你可以使用给定的类来检查类型。

1

不能,泛型在运行时不可用。如果您有T的实例,则可以始终检查T object是否为instanceof的特定类的实例。

这是由于type erasure

的另一种方法是使用Class类作为参数(见@ ColinD的answer

相关问题