javadoc的默认值

javadoc的默认值,java,javadoc,Java,Javadoc,我有一个带有AppConfig类的库 告诉其他使用此库的开发人员AppConfig中的默认值是什么的最佳方式是什么 我的一个想法是在javadoc中提到它,类似这样: public class AppConfig { private int someSetting = 50; /** * This setting does something. * * @default 50 */ public int setSomeSetting(int s

我有一个带有
AppConfig
类的库

告诉其他使用此库的开发人员
AppConfig
中的默认值是什么的最佳方式是什么

我的一个想法是在javadoc中提到它,类似这样:

public class AppConfig {
   private int someSetting = 50;

   /**
    * This setting does something.
    *
    * @default 50
    */
   public int setSomeSetting(int someSetting){
      this.someSetting = someSetting;
   }
}
但这种情况下的实际最佳实践是什么


(我相信
@default
不是真正受支持的标记)

正确;没有这样的注释

由此可知:这只是“纯粹的风格”;意思:javadoc很好-你做任何适合你的事情;分别是您周围将使用此类的人员团队

但真正棘手的问题是:把那条信息放在哪里?!您可以看到:当类的用户
setSomeSetting()
。。。您已经应用了该默认值

换句话说:您可能正在构造函数中使用这些默认值。因此,您应该在“类javadoc”中告诉用户这些默认值;可能还有他们的价值观

比如:


最好创建这样的常量:
publicstaticfinalintdefault\u设置=50
,然后使用
someSetting=DEFAULT\u设置以初始化它。这样就非常清楚默认值是什么以及为什么设置为该特定值。@patrick hainge这可能会清楚默认值是什么——但它如何才能清楚为什么设置为该值?它澄清了为什么在某种意义上,与其看到
x=50
,还必须查看文档或注释才能找到它为什么
x
一开始是
50
,我们看到
x=默认值
,马上就知道发生了什么。@patrick hainge,当然,它会出现在javadoc字段摘要中,所以它是有文档记录的。我只想加上我的两分钱,关于“把那条信息放在哪里”这可以/应该在getter而不是setter中。我们不在乎更新时的值是多少。当然,使用常量是非常清楚的,因为它们在javadoc中是可见的(基于访问)@GhostCat如果Config类包含20或50个变量呢?我应该在类javadoc中列出所有这些默认值吗?@AxelH这似乎更正确、更直观。然而,在这种情况下,使用这个库的开发人员正在将配置传递给库,这将使我们了解它——基本上除了库之外,没有人会调用getter。使用此库的开发人员通常会创建一个AppConfig对象,可能会更改一些值,然后将其传递给库并使用该库。@user2015253 Hum,您如何处理一个不提供getter的
Config
类?这些字段是私有的,因此对其他字段隐藏。而
Config
那些没有说背后有任何逻辑的人。但即使没有这个,使用常数也可以解决问题。最后一件事,如果没有getter,您不关心默认值,因为没有人会使用它。@user2015253如果该类列出20或50个变量,那么您的问题不是如何记录默认值。那么,您的问题是一个可能被破坏的设计。你看,有一个数字值的“平面列表”,仅仅通过它们的名字来表达它们的意思,这不是一个好概念。但是为了解决这个问题,你可能不得不问另一个问题。或者我们可以在聊天室碰头谈谈。
/**
 * ... 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; }