调用方法级别

时间:2015-02-20 18:03:33

标签: java

在基于面向对象的编程语言如java中,我们可以使用objectName.methodName()调用对象的方法 -

aStudent.getName().equals(anotherStudent.getName()); 

这里要实现equals()方法,我必须使用两个点(。)。在某些情况下,可能有超过2个点,如 -

objectName.methodName1().methodName2().methodName3().methodName4()

我的问题是 - 这种方法调用水平有限制吗?

2 个答案:

答案 0 :(得分:4)

自写作以来没有技术限制:

result = foo.bar().baz();

相当于写作

bar = foo.bar();
result = bar.baz();

但是,通常存在设计限制:如果您正在访问某个对象的孩子的孩子的孩子,则可能违反了Law of Demeter(和this文章如果你有兴趣,可以进一步澄清事情。)

答案 1 :(得分:2)

只要该方法返回一个对象,就可以调用该对象的任何公共方法,因此没有任何限制(没有你应该重要的......总是有一个限制)。

请注意,该方法可能没有限制,但根本不建议,因为它更难以阅读,并且更难以在其中一个对象中验证为空。