我有一个类型的参数化方法,但我不能叫的类型参数化参数getClass
因为它可以null
,所以我看到的唯一的解决办法是从类型参数本身得到Class
,不知何故:如何从方法的类型参数获取一个Class对象?
public <T> Class myMethod(T obj)
{
//can't do this: return obj.getClass() because null is permitted.
}
此方法只是说明问题。我的实际方法甚至不会返回参数的类,但以不同的方式使用它。问题的核心是这样的:有没有办法让Class
对象代表我的方法参数的参数化类型,而不使用obj.getClass()
(因为如果obj是null
,我仍然需要知道方法的参数类型是什么调用,例如:<String>myMethod(null)
必须返回java.lang.String
类对象)。
编辑这不是上述问题的重复,因为我的类没有参数化,只有我的方法。
你不能,期间。这是什么意图告诉你,'getClass()'不会? – chrylis
@chrylis该方法是一个例子。我的实际方法不是那样的。我只是将问题简化为核心:我需要知道可能为null的对象的类。 – FinnTheHuman
[如何获得泛型类型T的类实例]可能的副本(http://stackoverflow.com/questions/3437897/how-to-get-a-class-instance-of-generics-type-t) – fabian