我在想下面这段Java代码:System.out.println - 此方法链接在Java中吗?
“System.out.println”。我对此正确:
“系统”是一个静态类。 “.out”是类“System”的一种方法。这是我对“.println”轻微混淆的一点 - 这是什么类/对象?
此外,这个概念被称为“方法链”?
由于
GF
我在想下面这段Java代码:System.out.println - 此方法链接在Java中吗?
“System.out.println”。我对此正确:
“系统”是一个静态类。 “.out”是类“System”的一种方法。这是我对“.println”轻微混淆的一点 - 这是什么类/对象?
此外,这个概念被称为“方法链”?
由于
GF
不,这不是方法链接。你是对的System
是一个类(只是一个普通的类,而不是“静态的” - 只有内部类可以是静态的),但out
是类(java.io.PrintStream类型)的静态字段,只有println()
是一种方法的PrintStream
。
这是方法链接的示例:
String s = "Long String ".toUpperCase().substring(4).trim()
out
不是方法 - 它是PrintStream
一个实例,其中println
是一种方法。
参见http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out
类System具有一个成员变量 '出',类型PrintStream的。这不是一种方法。
类PrintStream有一个方法println(String)。
所以不行,不是方法链。
据我所知,方法链只是返回这个你可能返回void,允许在一个语句中多次调用方法,也许可以更自然地表达一个DSL。你可以看到它在StringBuilder的追加(String)方法
StringBuilder builder = new StringBuilder()
.append("I am a ")
.append("String")
.append("Builder");
如果你有兴趣了解更多的行动,Martin Fowler的谈论方法链接here。
“静态”仅用于内部类。 – 2009-12-28 12:03:32
是的,我在你指出前纠正了我的错误*,谢谢! – Brabster 2009-12-28 12:11:39