亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為 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 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號