【问题标题】:Concatenating package and class names (java reflection)连接包名和类名(java 反射)
【发布时间】:2015-02-22 19:04:15
【问题描述】:

我有一个Package 实例和一个Class 名称作为字符串。

有没有什么优雅的方式来连接它们(所以我可以在结果上运行Class.forName())?

我当然可以从包中提取字符串并在它和类名之间添加一个句点,但必须有更优雅的方法来做到这一点。

【问题讨论】:

  • 您为什么认为将两者连接起来不是一种优雅的方式?字符串 fqcn = 包名 + "." + 类名;或 StringBuilder sb = new StringBuilder(); sb.append(packageName); sb.append("."); sb.append(className);
  • 正如@anacron 建议的那样,连接是一个好方法,但如果你想要别的东西,请使用StringBuilder 追加。
  • 我在想,必须有一种方法可以从包中获取类,然后使用它的名称,或者一些将包连接到类的函数,类似于目录和文件(路径) .

标签: java reflection packages


【解决方案1】:

没有特殊的工具可以将简单的类名与其包名连接起来,你必须自己做:

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

【讨论】:

  • 谢谢。这就是我正在做的,只是认为应该有类似于目录和文件连接的东西。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
相关资源
最近更新 更多