Я хотел бы знать, как я могу получить возвращаемое значение метода и использовать его в другом, непосредственно следуя за ним. Например, скажем, я сделал это:
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 из метода multiply в качестве значения, а затем использовать метод add, чтобы добавить любое значение, которое я даю ему для результата умножения, равного четырем.
Примечание. Я понимаю, что могу:
add(multiply(2, 2), 3);
но я хочу знать, как использовать этот формат.
Я хочу выполнить следующее:
Integer i = multiply(2, 2).add(5);
System.out.print(i);
где, когда я запускаю этот вывод, будет 9, потому что 2 * 2 = 4 + 5 = 9. Пожалуйста, объясните это мне :)
Верните ссылку на класс, содержащий конечное значение и выполняющий на нем операции, используя операнды, переданные в качестве аргументов (см. Метод каскадирования и цепочка методов), что-то вроде этого:
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
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;
}
}