我想知道以下一段 Java 代码:
“System.out.println”。我是对的:
“系统”是一个静态类。“.out”是“System”类的一个方法。这是我对“.println”有点困惑的一点——这是什么类/对象的方法?
另外,这个概念是否称为“方法链接”?
谢谢
GF
我想知道以下一段 Java 代码:
“System.out.println”。我是对的:
“系统”是一个静态类。“.out”是“System”类的一个方法。这是我对“.println”有点困惑的一点——这是什么类/对象的方法?
另外,这个概念是否称为“方法链接”?
谢谢
GF
不,这不是方法链接。你是System
一个类(只是一个普通类,而不是“静态” - 只有内部类可以是静态的)是正确的,但out
它是类的静态字段(类型为java.io.PrintStream),并且println()
只是的方法PrintStream
。
这是一个方法链的例子:
String s = "Long String ".toUpperCase().substring(4).trim()
System类有一个 PrintStream 类型的成员变量“out”。这不是一种方法。
PrintStream类有一个方法 println(String)。
所以不,不是方法链接。
据我所知,方法链接只是在您可能返回 void 的地方返回this,允许在单个语句中多次调用方法,并且可能是更自然的 DSL 表达式。您可以在StringBuilder的 append(String) 方法中看到它的实际效果
StringBuilder builder = new StringBuilder()
.append("I am a ")
.append("String")
.append("Builder");
如果您有兴趣了解更多信息,Martin Fowler在这里谈到了方法链。
out
不是方法 - 它是 的实例PrintStream
,其中println
是方法。
请参阅http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out