Java 何时返回当前实例而不是void?

Java 何时返回当前实例而不是void?,java,return-value,return-type,Java,Return Value,Return Type,考虑以下情况: public void setInt(int i){ this.i = i; } 与: public MyClass setInt(int i) { this.i = i; return this; } 考虑是否要打印内部整数。如果我们使用void作为setInt的返回值,我们将使用以下代码: MyClass m = new Class(); m.setInt(10); System.out.println(m.getInt()); System.o

考虑以下情况:

public void setInt(int i){
    this.i = i;
}
与:

public MyClass setInt(int i) {
    this.i = i;
    return this;
}
考虑是否要打印内部整数。如果我们使用
void
作为
setInt
的返回值,我们将使用以下代码:

MyClass m = new Class();
m.setInt(10);
System.out.println(m.getInt());
System.out.println(new MyClass().setInt(10).getInt());
如果我们使用
MyClass
作为
setInt
的返回值,我们将使用以下代码:

MyClass m = new Class();
m.setInt(10);
System.out.println(m.getInt());
System.out.println(new MyClass().setInt(10).getInt());
对我来说,第二种方法似乎更干净整洁,但我对这些方法仍有疑问

  • 在什么情况下,第一种方法(使用
    void
    )可以使用
  • 在什么情况下可以使用第二种方法

您可以双向执行void@FranMontero我知道我可以用两种方法,但哪一种方法比另一种更好?@Makoto模式本身被称为,其中一种(但不是唯一一种)用法是builders。@Real怀疑论者基于观点也是基于观点的朋友,但没关系,我得到了我需要的。thx:)@nafas客观上不能使用这种模式的地方是在Java5之前,在Java5中,子类不能重写方法并定义更窄的返回类型void@FranMontero我知道我可以用两种方法,但哪一种方法比另一种更好?@Makoto模式本身被称为,一种(但不是唯一的)它的用法是“建设者”。@Real怀疑论者基于观点也是基于观点的朋友,但没关系,我得到了我需要的东西。thx:)@nafas在Java5之前客观上不能使用此模式,在Java5之前,子类不能重写方法并定义更窄的返回类型。