为 Java 本地提供与方法相同的名称?

MyClassBuilder myClassBuilder = myClassBuilder()

返回构建器的工厂方法,分配给与方法同名的本地。

我今天以前从未见过这种情况。它有意义还是应该避免?在 Python 或 C++ 中不可能有意义地做到这一点,所以我是 Java 新手,感觉不对。IntelliJ 并没有给出太多警告,它会导致一些(对我来说)看起来令人困惑的代码。

简单地说:这被认为是惯用的 Java 吗?

编辑:我不认为这纯粹是基于意见的。Java 社区的主要参与者(甚至可能是语言创建者自己)可能会或可能不会使用该语言的这个“特性”。如果他们这样做了,那就表明它是惯用的。理想情况下,答案将引用它的使用位置或它解决的具体问题。我不认为这是一个很好的语言功能,我从未使用过它,但我思想开放,并准备好接受其他方式。


米琪卡哇伊
浏览 160回答 2
2回答

守候你守候我

在java中方法名和字段名都有自己的名字空间,所以可以给它们同名。有一些代码样式,可能会使用它:public class Human {    private String opinion;    public Human opinion(String opinion) {        this.opinion = opinion;        return this;    }    public String opinion() {        return opinion;    }由于字段/方法、字段/参数和方法重载而导致的重复。在流畅的 API、构建器模式中看到,不时的 getter-setter 憎恨者。从上面可以看出,它也有点重复。方法名称的口头短语似乎更好(除了我们有size()这样的)。

湖上湖

有可能,但是...这是可能的,并且会编译,但它确实令人困惑。我认为最好避免为您的同事和/或未来的自己命名。您可以查看此网站以了解良好做法,我认为您甚至可以找到更好的官方来源。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java