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; }