java - 从之前的方法继承数据类型的方法?

标签 java methods return inherited

我想知道如何获取一个方法的返回值并在紧随其后的另一个方法中使用它。例如,假设我这样做了:

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 cascadingMethod 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/

相关文章:

java - JTextField - 数字分隔(ArrayList)

java - Java 通货紧缩/通货膨胀流如何工作?

java - 从目录导入时 eclipse 中的包名称

java - 使用 Powermock 测试 Spring Controller

c++ - =delete 方法上的限定符

java - 主要似乎跳过了我的方法之一

java - 我如何确保在 child 中调用 super 方法?

java - 如何修改 void 类方法使其返回所需信息

javascript - 如何从 javascript/jQuery 中调用另一个函数的函数获取返回值?

java |找不到符号 |返回一个对象