为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米琪卡哇伊 2021-09-12 15:59:15
MyClassBuilder myClassBuilder = myClassBuilder()返回构建器的工厂方法,分配给与方法同名的本地。我今天以前从未见过这种情况。它有意义还是应该避免?在 Python 或 C++ 中不可能有意义地做到这一点,所以我是 Java 新手,感觉不对。IntelliJ 并没有给出太多警告,它会导致一些(对我来说)看起来令人困惑的代码。简单地说:这被认为是惯用的 Java 吗?编辑:我不认为这纯粹是基于意见的。Java 社区的主要参与者(甚至可能是语言创建者自己)可能会或可能不会使用该语言的这个“特性”。如果他们这样做了,那就表明它是惯用的。理想情况下,答案将引用它的使用位置或它解决的具体问题。我不认为这是一个很好的语言功能,我从未使用过它,但我思想开放,并准备好接受其他方式。
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

在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()这样的)。


查看完整回答
反对 回复 2021-09-12
?
湖上湖

TA贡献2003条经验 获得超2个赞

有可能,但是...

这是可能的,并且会编译,但它确实令人困惑。我认为最好避免为您的同事和/或未来的自己命名。

您可以查看此网站以了解良好做法,我认为您甚至可以找到更好的官方来源。


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信