【问题标题】:How does chained methods execute in java?java中的链式方法是如何执行的?
【发布时间】:2016-03-11 05:12:25
【问题描述】:

这是我的代码:

result = method1().method2().method3();

我想知道上述代码/语句的执行层次

【问题讨论】:

    标签: java methods chaining


    【解决方案1】:

    只需通过以下几点。

    1. 确定最左边的方法调用将返回什么(我们称之为 x)。
    2. 使用 x 作为调用第二个(左起)方法的对象。如果有 只是两个链式方法,第二个方法调用的结果是 表达式的结果。
    3. 如果有第三种方法,则使用第二种方法调用的结果 调用第三种方法。

    根据您的说法,执行层次如下:

    1. 首先,将调用最左边的方法method1()
    2. 假设 method1() 返回一个对象“meth”,那么第二个方法(左起)method2() 将被称为 meth.method2( )
    3. 最后,从 method2() 返回的对象将用于调用 method3()

    希望它能澄清你的疑问。

    【讨论】:

    • 谢谢你这么简短的解释
    【解决方案2】:

    我用一个小例子来解释上面代码的层次结构。

    result = method1().method2().method3();
    

    例子:

    getYear().toString().trim(); //like method1().method2().method3()
    

    首先将执行 get year() 返回一个整数:

    2016.toString().trim();
    

    第二个将执行整数类的 toString() 方法 返回一个字符串:

    "2016".trim();
    

    在最后使用字符串类的 trim() 方法修剪字符串。

    【讨论】:

      【解决方案3】:

      同理:

      result1 = method1();
      result2 = result1.method2();
      result = result2.method3();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-06
        相关资源
        最近更新 更多