我有一段代碼用於將由Class.getCanonicalName()
交付的字符串表示轉換爲其相應的Class
實例。這通常可以使用ClassLoader.loadClass("className")
完成。然而,它在投擲ClassNotFoundException
的原始類型上失敗。我來唯一的解決辦法就是對面是這樣的:通過ClassLoader使用原始類型
private Class<?> stringToClass(String className) throws ClassNotFoundException {
if("int".equals(className)) {
return int.class;
} else if("short".equals(className)) {
return short.class;
} else if("long".equals(className)) {
return long.class;
} else if("float".equals(className)) {
return float.class;
} else if("double".equals(className)) {
return double.class;
} else if("boolean".equals(className)) {
return boolean.class;
}
return ClassLoader.getSystemClassLoader().loadClass(className);
}
這似乎非常討厭我,那麼有沒有這方面的任何清潔方法?
如果您在Java 7的時候,你可以嘗試在字符串'之開關。 –
噢,很高興知道。不過,重點是我不想用String.equals檢查某些類型。這是令人討厭的部分。 – aRestless