我正在阅读其他人的代码,并对此代码段感到困惑:
public static Builder Builder() {
return new Builder();
}
Run Code Online (Sandbox Code Playgroud)
这是构造函数吗?构造函数通常没有'return'语句.常规方法不使用大写的'Builder()'.我很困惑.
区分构造函数和方法的关键特性是返回类型.所以
/* optional modifiers */ Builder()
Run Code Online (Sandbox Code Playgroud)
是一个构造1对Builder,但
/* optional modifiers */ Builder Builder()
Run Code Online (Sandbox Code Playgroud)
是一个Builder返回Builder对象的命名方法.它也是一种令人震惊的样式违规,因为Java方法应该以小写字母开头.除此之外,这使人类更容易区分方法和构造函数!(虽然编译器并不关心...)
还有其他的说明.方法允许使用某些修饰符,但构造函数不允许.static例如,修饰符.
简而言之,您的示例是方法2.
1 - 请注意,构造函数名称必须与封闭的类名称匹配.但是如果你弄错了,编译器仍会在编译错误中将其称为构造函数.
2 - 我们可以进一步将其归类为静态工厂方法.但是,这是一种设计分类,与Java语言本身无关.