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