2014-12-24 3 views
1

У меня есть экземпляр Package и имя Class как строка.Сочетание пакетов и имен классов (отражение в java)

Есть ли какой-либо изящный способ их конкатенации (так что я могу запустить Class.forName() по результату)?

Я мог бы, конечно, просто извлечь строку из пакета и добавить период между ним и именем класса, но должен быть более элегантный способ сделать это.

+0

Почему вы думаете, что конкатенации два не элегантный способ? Строка 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

Смежные вопросы