我想知道如何获取一个方法的返回值并在紧随其后的另一个方法中使用它。例如,假设我这样做了:
public Integer multiply(Integer n1, Integer n2){
return n1 * n2;
}
//I know this is wrong but I don't know what params to put
public Integer add(Integer n1, Integer n2){
return n1 + n2;
}
multiply(2, 2).add(???????);
在这里,我想最终使用乘法方法中的 4 作为值,然后使用 add 方法将我给它的任何值添加到乘法结果 4 中。
注意:我知道我可以这样做:
add(multiply(2, 2), 3);
但我想知道如何使用这种格式。
我想要完成的是:
Integer i = multiply(2, 2).add(5);
System.out.print(i);
当我运行这个时,输出将为 9,因为 2 * 2 = 4 + 5 = 9。请向我解释一下:)
最佳答案
返回对保存最终值的类的引用,并使用作为参数传递的操作数对其进行操作(请参阅 Method cascading 和 Method chaining ),类似这样:
public class ALU {
Integer value = 0;
ALU mutiply(Integer i1, Integer i2) {
value = i1.intValue() * i2.intValue();
return this;
}
ALU mutiply(Integer i) {
value *= i.intValue();
return this;
}
ALU add(Integer i) {
value += i.intValue();
return this;
}
ALU add(Integer i1, Integer i2) {
value = i1.intValue() + i2.intValue();
return this;
}
@Override
public String toString() {
return Integer.toString(value);
}
public static void main(String... args) {
System.out.println(new ALU().mutiply(2, 2).add(5));
}
}
输出为9
关于java - 从之前的方法继承数据类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875575/