2009-12-28 75 views
2

我在想下面这段Java代码:System.out.println - 此方法链接在Java中吗?

“System.out.println”。我对此正确:

“系统”是一个静态类。 “.out”是类“System”的一种方法。这是我对“.println”轻微混淆的一点 - 这是什么类/对象?

此外,这个概念被称为“方法链”?

由于

GF

回答

10

不,这不是方法链接。你是对的System是一个类(只是一个普通的类,而不是“静态的” - 只有内部类可以是静态的),但out是类(java.io.PrintStream类型)的静态字段,只有println()是一种方法的PrintStream

这是方法链接的示例:

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

System具有一个成员变量 '出',类型PrintStream的。这不是一种方法。

PrintStream有一个方法println(String)。

所以不行,不是方法链。

据我所知,方法链只是返回这个你可能返回void,允许在一个语句中多次调用方法,也许可以更自然地表达一个DSL。你可以看到它在StringBuilder的追加(String)方法

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

如果你有兴趣了解更多的行动,Martin Fowler的谈论方法链接here

+0

“静态”仅用于内部类。 – 2009-12-28 12:03:32

+0

是的,我在你指出前纠正了我的错误*,谢谢! – Brabster 2009-12-28 12:11:39