在java中构造对象时可以this
作为参数传递给方法吗?
想到这样做让我感到不安,但我不确定这是否肯定是错误的。举一个假设的例子:
public final class A {
private final B b;
private final List<String> words;
public A(B b) {
this.b = b;
words = new ArrayList<String>();
for(int i = 0; i < 10; i++) {
words.add(b.getNextStringFromUser(this));
}
}
public List<String> getWords() {
return words;
}
}
public class B {
// returns a String chosen by the user based on the current state of A
public String getNextStringFromUser(A a) {
List<String> wordsSoFar = a.getWords();
// ... omitted
}
}
我能想到的情况可能是正确的做法是,您想要构造一个从其余代码的角度来看可以是不可变的对象,但是构造函数可能会采取不同的过程,具体取决于到目前为止指定的状态(如果谈论部分构造对象的状态是有意义的)。在上面的示例中,用户根据到目前为止选择的字符串选择一个字符串,当它们都被选中时,这个对象应该永远不会再改变。
这种事情可以/可取吗?谢谢。