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

标签 java xml new-operator objectinstantiation

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

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

我看到了this link很有用,但有一个 new 运算符间接涉及一个或另一个内部方法。

真的有办法不用 new 运算符在 java 中实例化对象吗?

最佳答案

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

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

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

public enum YourEnum { X, Y }

关于java - 不使用 new 运算符实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16607261/

相关文章:

java - 字符串、模式匹配

javascript - 寻找更快或更好的方法来使用 jquery 选择 XML 节点的第 n 个子节点

c++ - 如何最好地在 C++ 中存储非常大的 2D float 列表?错误处理?

java - Scanner.hasNextLine() 方法看不到文件中的下一行

c++ - 找到可能的最大内存分配

c++ - 是否应该经常检查新运算符(operator)是否工作?

java - Xuggler 生成错误消息

java - 在 Eclipse 中仅使用特定类型的参数替换方法

java - 空指针异常日志 Cat Error

xml - 使用 Powershell 更新 Azure 服务配置文件