System.out.println - 这个方法在 Java 中是链式的吗?
我想知道下面这段Java代码:
“System.out.println”。我是对的:
“System”是一个静态类。 “.out”是“System”类的方法。这是我对“.println”有点困惑的地方——这是哪个类/对象的方法?
另外,这个概念是否称为“方法链”?
谢谢
GF
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,这不是方法链。您对
System
的看法是正确的 是一个类(只是一个常规类,不是“静态” - 只有内部类可以是静态的),但是out
是类的静态字段(类型为 java.io.PrintStream),并且仅println()
是打印流
。这是方法链的示例:
No, it's not method chaining. You're right about
System
being a class (just a regular class, not "static" - only inner classes can be static), butout
is a static field of the class (of the type java.io.PrintStream), and onlyprintln()
is a method ofPrintStream
.This is an example of method chaining:
类 System 有一个成员PrintStream 类型的变量“out”。这不是一个方法。
类 PrintStream 有一个方法 println (细绳)。
所以不,不是方法链。
据我所知,方法链只是返回 this,您可能会返回 void,从而允许在单个语句中多次调用方法,并且可能是更自然的 DSL 表达。您可以在 StringBuilder< 中查看它的实际情况/a> 的append(String) 方法
如果您有兴趣了解更多信息,Martin Fowler 谈到了方法链接 这里。
The class System has a member variable 'out', of type PrintStream. It's not a method.
Class PrintStream has a method println(String).
So no, not method chaining.
Method chaining, as far as I know, is just returning this where you might return void, allowing for multiple invocations of methods in a single statement and perhaps a more natural expression of a DSL. You can see it in action in the StringBuilder's append(String) method
If you're interested in knowing more, Martin Fowler talked about Method Chaining here.
out
不是一个方法 - 它是PrintStream
的一个实例,其中println
是一个方法。请参阅 http://java.sun .com/j2se/1.5.0/docs/api/java/lang/System.html#out
out
is not a method - it is an instance ofPrintStream
, of whichprintln
is a method.See http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out