我有一個類型的參數化方法,但我不能叫的類型參數化參數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