在Java中,如果我有一个类,如:
public class Example {
private String s;
private int i;
public Example() {
}
// set variables back to default initializations
public clear() {
// how?
}
}
当这个类被实例化时,我的理解是s
和i
将分别设置为null
和0
。
有没有办法定义一个clear方法,以便将所有类变量设置回默认值?
我意识到依靠默认值可能不是最佳做法,但我有数百个这样的变量(所有字符串和整数)的代码。当默认值恰好是我需要的时候,定义清晰的方法和初始化似乎是多余的。
答案 0 :(得分:2)
由于您知道默认值是什么,因此您只需手动分配它。
int
为0,对象为null
,依此类推..(有关详细信息,请参阅JLS - 4.12.5. Initial Values of Variables)
但问题是,为什么要这样做而不是简单地创建新实例?
答案 1 :(得分:1)
不要创建一个清晰的方法,只需重新实例化该类:
Example example = new Example();
example.doSomething();
example = new Example(); //this will reset the variable's values to their default
答案 2 :(得分:0)
Example example = new Example();
example.doSomeWork();
example = new Example(); //??
答案 3 :(得分:0)
如下所示:
public class Example {
private String s;
private int i;
public Example() {
this.clear();
}
// set variables back to default initializations
public clear() {
// call this method from within constructor and whenever you would like to reset
s = new String("abc"); // example initializer, actually re-assignment
i = 0; // presuming this is the default initilization
}
}