我经常发现自己在为一个“简单的”POJO类的属性/成员编写javadoc时左右为难,这个类只包含属性、getter和setter(DTO风格)……
1)为属性编写javadoc
或者..。
2)为getter编写javadoc
如果我为该属性编写javadoc,当我稍后通过代码完成访问POJO时,我的IDE (Eclipse)将(自然)不能显示它。而且没有标准的javadoc标记可以让我将getter-javadoc链接到实际的javadoc属性。
举个例子:
public class SomeDomainClass {
/**
* The name of bla bla bla
*/
private String name;
/**
* @return INSERT SOME SMART JAVADOC TAG LINKING TO name's javadoc
*/
public String getName() {
return name;
}
因此,基本上,听到其他人如何让Eclipse IDE显示getter的javadoc属性描述,而不必复制javadoc注释,这将是一件有趣的事情。
到目前为止,我正在考虑让我的实践只记录getter,而不是属性。但这似乎不是最好的解决方案。
发布于 2010-02-16 13:30:13
您可以在生成Javadoc时包含私有成员(使用-private),然后使用@link链接到该字段属性。
public class SomeDomainClass {
/**
* The name of bla bla bla
*/
private String name;
/**
* {@link SomeDomainClass#name}
*/
public String getName() {
return name;
}
}
或者,如果您不想为所有私有成员生成Javadoc,您可以有一个约定来记录所有getter,并在setter上使用@link。
public class SomeDomainClass {
private String name;
/**
* The name of bla bla bla
*/
public String getName() {
return name;
}
/**
* {@link SomeDomainClass#getName}
*/
public void setName(String name) {
this.name = name;
}
}
发布于 2016-12-13 13:28:02
对于这样的任务,Lombok是一个非常方便的库。
@Getter
@Setter
public class Example {
/**
* The account identifier (i.e. phone number, user name or email) to be identified for the account you're
* requesting the name for
*/
private String name;
}
这就是你所需要的!@Getter
注释为每个私有字段创建一个getter方法,并将javadoc附加到该方法。
PS:该库有许多很酷的功能,您可能想要检查一下
发布于 2010-02-16 14:10:42
在Eclipse的自动完成功能的帮助下,我做到了这两点。
首先,我记录该属性:
/**
* The {@link String} instance representing something.
*/
private String someString;
然后,我将此代码复制并粘贴到getter中:
/**
* The {@link String} instance representing something.
*/
public String getSomeString() {
return someString;
}
在eclipse中,@return语句有一个自动补全-所以,我添加了单词Gets,小写"t",并复制了小写"t“的句子。然后我使用@return (带有Eclipse自动完成),粘贴句子,然后在return中大写T。然后它看起来像这样:
/**
* Gets the {@link String} instance representing something.
* @return The {@link String} instance representing something.
*/
public String getSomeString() {
return someString;
}
最后,我将该文档复制到setter:
/**
* Gets the {@link String} instance representing something.
* @return The {@link String} instance representing something.
*/
public void setSomeString(String someString) {
this.someString = someString;
}
然后,我修改了它,使用Eclipse自动完成功能,您不仅可以获得@param标记,还可以获得参数的名称:
/**
* Sets the {@link String} instance representing something.
* @param someString The {@link String} instance representing something.
*/
public void setSomeString(String someString) {
this.someString = someString;
}
然后,我就完事了。在我看来,从长远来看,这种模板化让它变得更容易,不仅可以通过重复提醒自己属性的含义,而且如果您想要添加副作用(例如不允许空属性,将字符串转换为大写等),还可以更容易地向getter和setter添加额外的注释。为此,我研究了制作一个Eclipse插件,但是我找不到合适的JDT扩展点,所以我放弃了。
请注意,句子可能并不总是以T开头-它只是粘贴时必须不大写/重写的第一个字母。
https://stackoverflow.com/questions/2273170
复制相似问题