use*_*990 6 java object this reset
如果我有一个类型为Foo的对象myObject,而在myObject中,有没有办法重置自己并再次运行构造函数?
我知道以下内容不起作用,但可能有助于表达这一想法.
this = new Foo();
Run Code Online (Sandbox Code Playgroud)
das*_*ght 14
无法在现有实例上再次运行构造函数.但是,您可以组织代码,以便以最少的工作量重置,如下所示:
public class MyClass {
public MyClass() {
reset();
}
public void reset() {
// Setup the instance
this.field1 = ...
this.field2 = ...
}
}
Run Code Online (Sandbox Code Playgroud)
注意:您的reset方法需要设置所有字段,而不仅仅是您通常在构造函数中设置的字段.例如,您的构造函数可以依赖于引用字段的默认初始化null和数字字段为零; 您的reset方法需要明确地设置它们.
小智 6
最好设置null或使用新的Object()
obj = null;
or
obj = new Object();
Run Code Online (Sandbox Code Playgroud)
垃圾收集器最终会清除对象
| 归档时间: |
|
| 查看次数: |
39633 次 |
| 最近记录: |