如果我有一个 Foo 类型的对象 myObject,而在 myObject 内部,有没有办法重置自身并再次运行构造函数?
我知道以下内容不起作用,但可能有助于传达这个想法。
this = new Foo();
最佳答案
无法在现有实例上再次运行构造函数。但是,您可以通过一种方式来组织您的代码,以允许以最少的工作量进行重置,如下所示:
public class MyClass {
public MyClass() {
reset();
}
public void reset() {
// Setup the instance
this.field1 = ...
this.field2 = ...
}
}
注意:您的重置方法需要设置所有字段,而不仅仅是您通常在构造函数中设置的字段。例如,您的构造函数可以依赖于将引用字段默认初始化为 null
并将数字字段初始化为零;您的 reset
方法需要明确设置它们。
关于java - 如何重置Java中的当前对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386444/