MyClassBuilder myClassBuilder = myClassBuilder()
一种用于返回生成器的工厂方法,该方法分配给与该方法同名的本地方法。
今天以前我从未见过。它有意义还是应该避免?不可能在Python或C ++中有意义地执行此操作,因此当我刚接触Java时,就感觉不对。 IntelliJ并没有给出警告,而是导致一些(对我而言)令人困惑的代码。
简单地说:这被认为是惯用的Java吗?
编辑:我不认为这纯粹是基于观点。 Java社区的主要参与者(甚至可能是语言创建者本人)可能会也可能不会使用这种语言的“功能”。如果他们这样做,则表明它是惯用的。理想情况下,答案会引用它的使用位置或所解决的特定问题。我认为这不是一个很好的语言功能,我从未使用过它,但我胸襟开阔,并准备接受其他建议。
答案 0 :(得分:1)
在Java 方法和 field 中,名称具有自己的名称空间,因此可以给它们指定相同的名称。
有些代码样式可能会使用它:
public class Human {
private String opinion;
public Human opinion(String opinion) {
this.opinion = opinion;
return this;
}
public String opinion() {
return opinion;
}
由于字段/方法,字段/参数和方法重载导致的重复。
偶尔会看到流利的API,Builder模式,以及讨厌的人。
从上面可以看到,它也是重复的。方法名称的语言短语似乎更好(除了我们有size()
之类的东西。)
答案 1 :(得分:0)
这是可能的,并且会进行编译,但这确实令人困惑。我认为最好避免为您的同事和/或未来的自己起这样的名字。
您可以看到this website的良好做法,而且我认为您甚至可以找到更好的官方资源。