问题
Here is my code :
result = method1().method2().method3();
I would like to know the execution hierarchy of the above code/statement
回答1:
Just go through the following points.
- Determine what the leftmost method call will return (let’s call it x).
- Use x as the object invoking the second (from the left) method. If there are only two chained methods, the result of the second method call is the expression's result.
- If there is a third method, the result of the second method call is used to invoke the third method.
As per your statement, the execution hierarchy will be as follows:
- First , method1() which is the leftmost method will be called.
- Suppose method1() returns an object "meth" then the second method (from the left) method2() will be called as meth.method2().
- Last, the object returned from method2() will be used to call the method3().
Hope it clarifies you doubt.
回答2:
I'm explaining hierarchy of the above code with small example.
result = method1().method2().method3();
Example:
getYear().toString().trim(); //like method1().method2().method3()First will be execute get year() which returns a Integer:
2016.toString().trim();Secound will be execute toString() method of integer class which returns an string:
"2016".trim();In Last trimming the stringwith trim() method of string class.
回答3:
Same as this:
result1 = method1();
result2 = result1.method2();
result = result2.method3();
来源:https://stackoverflow.com/questions/35932711/how-does-chained-methods-execute-in-java