Class.forName(boolean.class.getName());
這在Java中不起作用 - 虛擬機使用ClassNotFoundException強加於您。我需要類似的東西,因爲我想基於字符串包含的方法簽名,以反映方法,如根據類型簽名創建類對象
public void doSomething(boolean yesWeCan, java.lang.String[] presidents);
最後我想出了一個自定義「的ClassFactory」它轉換類型的字符串類對象。這個工廠包含很多用於原始類型和數組類型值的處理程序。
數組類型對象的處理程序是這樣的:
if (isArrayOfObjects) {
return Class.forName("L["+typeName.replace("[]", "")+";");
}
我的問題是 - 我已經錯過了一些在Java API 1.5+可能做的伎倆嗎?
編輯
謝謝您的回答,這不是一個驚喜,Class.forName
作品非常好與包裝類。但是我正在尋找所有java類型的解決方案,包括數組和基元。因此我的第一行不是拼寫錯誤。有些方法簽名確實具有java基元作爲參數,我不能僅僅使用包裝類來反映庫中的方法,我真的需要該類型的類對象(如布爾值)。
Class<boolean> booleanClassObject = boolean.class;
做工精細,以及
String name = boolean.class.getName();
'boolean'是一種原始數據類型,'Boolean'(注意是大寫B)是類。你必須使用這個類。 –
他試圖使用Boolean.TYPE。 – bmargulies