2014-12-24 47 views
1

我有一個Package實例和一個Class名稱作爲字符串。級聯包和類名(java反射)

是否有任何優雅的方式來連接它們(所以我可以對結果運行Class.forName())?

我當然可以從包中提取字符串,並在它和類名之間添加一段時間,但必須有一個更優雅的方式來做到這一點。

+0

爲什麼你認爲串聯兩個是不是一個優雅的方式? String fqcn = packageName +「。」 + className; 或 StringBuilder sb = new StringBuilder(); sb.append(packageName); sb.append(「。」); sb.append(className); – anacron

+0

@anacron建議,連接是一個好方法,但是如果你想要別的東西,可以使用'StringBuilder'來追加。 – Sid

+0

我在想,必須有一種方法從包中獲取類,然後使用它的名稱,或者將包連接到類的某些函數,類似於目錄和文件(路徑)的類型。 – Clangon

回答

1

沒有什麼特別的設施,以加入他們的包名簡單的類名,你不得不這樣做自己:

Package package = Package.getPackage("java.lang"); 
String simpleClassName = "String"; 
Class clazz = Class.forName (package.getName() + "." + simpleClassName); 
+0

謝謝。這就是我所做的,只是認爲應該有類似於目錄和文件連接的東西。 – Clangon