【问题标题】:Creating an object by String in java [duplicate]在java中通过String创建对象[重复]
【发布时间】:2011-04-07 21:21:56
【问题描述】:

可能重复:
Dynamically loading a class in Java

嗨 我正在尝试创建一个获取字符串参数并返回同名新对象的方法。即如果参数是“Mod”,该方法将返回 new Mod();

有没有办法在没有大量 if 语句的情况下做到这一点? 谢谢!

【问题讨论】:

  • java.lang.Class.forName(className)
  • 我相信这是Dynamically loading a class in Java的副本。
  • 虽然使用反射加载类偶尔会有一些好的用途,但这通常意味着设计有缺陷。你实际上想通过这样做来实现什么?您已经制定了战略,但没有目标,这通常更重要。

标签: java oop


【解决方案1】:

有反射:

/**
 * @param type A fully qualified Java type
 */
public Object create(String type) throws Exception {
  return Class.forName(type).newInstance();
}

阅读相应的 Javadocs 以了解发生了什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2021-07-20
    • 2021-10-26
    • 2011-11-28
    相关资源
    最近更新 更多