我想知道如何获取方法的返回值,并在另一个方法中直接使用它。例如,假设我这样做了:
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.请向我解释一下:)
答案 0 :(得分:2)
返回对包含最终值的类的引用,并使用作为参数传递的操作数对其执行操作(请参阅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
答案 1 :(得分:0)
Integer i = multiply(2, 2).add(5);
System.out.print(i);
这时你做
multiply(2, 2)
它返回一个integer
并使用该返回类型Integer
,你试图调用`add()方法。
但在add() method
课程中Integer
不可用,无论你想要签名和打算做什么。
所以抱怨add()
类Integer
内没有multiple(2,2)
。
所以为了实现它,让add()
返回你自己的类并产生结果。
然后以您希望的方式轻松地使用该对象调用package com.kb;
public class MultipleMethodCalls {
int result;
static MultipleMethodCalls m = new MultipleMethodCalls();
public static void main(String[] args) {
System.out.println(m.multiply(2, 2).add(3));
}
public MultipleMethodCalls multiply(Integer n1, Integer n2){
m.result= n1 * n2;
return m;
}
//I know this is wrong but I don't know what params to put
public Integer add(Integer n1){
return this.result + n1;
}
}
方法。
如何实现同样的方式如下
{{1}}