2017-05-04 64 views
1

我有一個類庫AppConfigjavadoc的默認值

什麼是最好的方式來通知其他開發者使用這個庫AppConfig默認值是什麼?

一個想法我已經是提到它在Javadoc,是這樣的:

public class AppConfig { 
    private int someSetting = 50; 

    /** 
    * This setting does something. 
    * 
    * @default 50 
    */ 
    public int setSomeSetting(int someSetting){ 
     this.someSetting = someSetting; 
    } 
} 

但什麼是此方案的實際最佳做法?

(因爲我相信@default是不是一個真正的支持標籤)

+0

這將是更好地創建一些恆定的,像這樣: '公共靜態最終詮釋DEFAULT_SETTING = 50;',然後有'someSetting = DEFAULT_SETTING;'初始化它。 這種方式非常清楚默認值是什麼以及它爲什麼被設置爲特定值。 –

+0

@ patrick-hainge這可能會清楚說明默認設置是什麼 - 但是它將如何清楚說明*爲什麼*它被設置爲該值? – user2015253

+0

它澄清了*爲什麼*在某種意義上說,我們看到'x = THE_DEFAULT_VALUE'並立即理解,而不是看到'x = 50'並且必須查看文檔或註釋以找出'x'爲什麼開始爲'50'這是怎麼回事。 –

回答

2

正確的;沒有這樣的註釋。

從那裏:這只是「純粹的風格」;意思是說:javadoc很好 - 你可以爲你做任何事情;分別是你周圍的人將使用這個類的團隊。

雖然真的很棘手的問題:其中把這條信息?!你看到:當類setSomeSetting()的用戶...你已經應用該默認值

換句話說:您可能在構造函數中使用了這些默認值。因此,您應該在「javadoc類」中告訴用戶有關這些默認值的權限;並可能是他們的價值。

像:

/** 
* ... Provides properties x, y,z; with defaults 50, 100, 150 
*/ 
public class Foo { 
    public final int BAR_DEFAULT = 50; 
    private int bar = BAR_DEFAULT; 

    public void setBar(int newBar) { bar = newBar; } 
+0

我只是將我的兩分錢關於「這裏可能/應該放在getter中而不是setter」中的「_ Where Where to the piece of information_」中。我們不在乎什麼是我們更新它的價值。當然,使用常量會非常明顯,因爲它們在javadoc中可見(基於訪問) – AxelH

+0

@GhostCat如果Config類包含20或50個變量,該怎麼辦?我應該在類javadoc中列出所有這些默認值嗎? – user2015253

+0

@AxelH這似乎更加正確和直觀。然而,在這種情況下,使用這個庫的開發人員將配置傳遞給庫,這將使我們的庫 - 除了圖書館將基本上沒有人會打電話給獲得者。 使用此庫的開發人員通常會創建一個AppConfig對象,可能會更改一些值,然後將其傳遞給庫並使用該庫。 – user2015253