System.out.println - 这个方法在 Java 中是链式的吗?

发布于 2024-08-16 22:11:38 字数 187 浏览 9 评论 0 原文

我想知道下面这段Java代码:

“System.out.println”。我是对的:

“System”是一个静态类。 “.out”是“System”类的方法。这是我对“.println”有点困惑的地方——这是哪个类/对象的方法?

另外,这个概念是否称为“方法链”?

谢谢

GF

I am wondering about the the following piece of Java code:

"System.out.println". I am right about this:

"System" is a static class. ".out" is a method of class "System". This is the bit I am slighty confused about ".println"-- what class / object is this a method of?

Also, is this concept known as "method chaining"?

Thanks

GF

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

朮生 2024-08-23 22:11:38

不,这不是方法链。您对 System 的看法是正确的 是一个类(只是一个常规类,不是“静态” - 只有内部类可以是静态的),但是 out 是类的静态字段(类型为 java.io.PrintStream),并且仅 println()打印流

这是方法链的示例:

String s = "Long String ".toUpperCase().substring(4).trim()

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), but out is a static field of the class (of the type java.io.PrintStream), and only println() is a method of PrintStream.

This is an example of method chaining:

String s = "Long String ".toUpperCase().substring(4).trim()
森林散布 2024-08-23 22:11:38

System 有一个成员PrintStream 类型的变量“out”。这不是一个方法。

PrintStream 有一个方法 println (细绳)。

所以不,不是方法链。

据我所知,方法链只是返回 this,您可能会返回 void,从而允许在单个语句中多次调用方法,并且可能是更自然的 DSL 表达。您可以在 StringBuilder< 中查看它的实际情况/a> 的append(String) 方法

StringBuilder builder = new StringBuilder()
  .append("I am a ")
  .append("String")
  .append("Builder");

如果您有兴趣了解更多信息,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

StringBuilder builder = new StringBuilder()
  .append("I am a ")
  .append("String")
  .append("Builder");

If you're interested in knowing more, Martin Fowler talked about Method Chaining here.

盛夏已如深秋| 2024-08-23 22:11:38

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 of PrintStream, of which println is a method.

See http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文