不使用 new 运算符实例化对象

新手上路,请多包涵

在一次 java 面试中,提出了以下问题:

在java中有没有一种方法可以在不使用 new 运算符的情况下实例化对象?我回复他说没有其他的实例化方式。但是他问我如何使用 xml 文件中的配置实例化 java 中的对象(在 spring 框架中)。我说过,spring 在内部使用 reflection utils 创建一个带有 new 运算符的对象。但是面试官不相信我的回答。

我看到 此链接 很有用,但有一个 new 运算符间接参与一个或另一个内部方法。

是否真的有一种方法可以在不使用 new 运算符的情况下在 java 中实例化对象?

原文由 Arun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 327
1 个回答

您可以使用 Java Reflection API 来完成。这就是 Spring 框架的 DI 的工作方式(从 xml 实例化对象)。

 Class<YourClass> c = YourClass.class;
YourClass instance = c.newInstance();


此外,考虑到 enum 是一个 special class ,枚举的实例是在不使用 new 运算符的情况下创建的。

 public enum YourEnum { X, Y }

原文由 sanbhat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题