在一次 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/