版本:Luna Service Release 2(4.4.2)
我通常使用" / **"在我的方法上插入Javadoc的方法。 Eclipse为所有args插入@param
,为所有throwable插入@throws
,并为@return
插入@return
。但是/**
*
* @param criteria
* @param filters
* @return
*/
protected static String
getColumnNameFromCriteria(SelectedCriteria criteria, List<SelectionFilter> filters)
永远不会附加一个类型。它看起来像这样:
${tags}
第一个问题是:Eclipse中是否有一个开关,以便在添加Javadoc时自动插入方法返回类型?
我找不到一个,所以我查了一下:preferences-&gt; java-&gt;代码样式 - &gt;代码模板 - &gt;方法
在该模板上,我看到变量${tags}
。该变量是生成上面显示的Javadoc的变量。
第二个问题是:有没有办法可以修改${return_type}
以包含由${tags}
生成的@return附加的变量/**<enter>
?
我希望能够键入/**
*
* @param criteria
* @param filters
* @return String
*/
protected static String
getColumnNameFromCriteria(SelectedCriteria criteria, List<SelectionFilter> filters)
并让Eclipse自动创建以下Javadoc:
uibButtonConfig
答案 0 :(得分:2)
你试过jautodoc插件吗?看看它可能会帮助你。比在alt-shift-j中构建的eclipse更好。
答案 1 :(得分:1)
根据您的问题,Eclipse(尚)中没有允许您修改此配置的配置。这是因为javadoc中的注释必须抱怨自动生成类javadoc HTML的工具。如果允许一个人更改它,javadoc
工具也应该有一个配置来理解这些修改。
您不必担心,因为此标记@return
是针对javadoc生成的。一旦生成项目javadoc,您将看到每个方法都将具有返回类型(在生成的html中)。该标记用于方法结果的特定描述。
采用这种方法:
/**
* This is an example of a documentation of a method with a return type.
* Note that there isn't a type on the `@return` tag
*
* @return the someAttribute
*/
public String getSomeAttribute() {
return someAttribute;
}
在Eclipse中,当你在这个方法上停止鼠标指针时,它会显示:
注意图像上文档的第一行。它说:String Foo.getSomeAttribute()
当您通过javadoc
工具或其他工具(例如Maven
)生成Javadoc时,它将生成包含所有类的javadoc的所有HTML文件,而Method摘要将类似于此{{3} })
String class
您可以在“修改器和类型”列中看到方法的返回类型。如果您查看其中一种方法的源代码(例如图像charAt(int index)
中的第一种方法),您会发现@return
标记中没有类型。
/**
* Returns the <code>char</code> value at the
* specified index. An index ranges from <code>0</code> to
* <code>length() - 1</code>. The first <code>char</code> value of the sequence
* is at index <code>0</code>, the next at index <code>1</code>,
* and so on, as for array indexing.
*
* <p>If the <code>char</code> value specified by the index is a
* <a href="Character.html#unicode">surrogate</a>, the surrogate
* value is returned.
*
* @param index the index of the <code>char</code> value.
* @return the <code>char</code> value at the specified index of this string.
* The first <code>char</code> value is at index <code>0</code>.
* @exception IndexOutOfBoundsException if the <code>index</code>
* argument is negative or not less than the length of this
* string.
*/
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
我希望它能帮助你理解这个标签。
答案 2 :(得分:1)
${tags}
变量在Eclipse中似乎不可编辑。在完成一些代码之后,这里有link到负责解析变量的类。特别是insertTag
方法:
private static void insertTag(IDocument textBuffer, int offset, int length, String[] paramNames, String[] exceptionNames, String returnType, String[] typeParameterNames, boolean isDeprecated,
String lineDelimiter) throws BadLocationException {
IRegion region= textBuffer.getLineInformationOfOffset(offset);
if (region == null) {
return;
}
String lineStart= textBuffer.get(region.getOffset(), offset - region.getOffset());
StringBuffer buf= new StringBuffer();
for (int i= 0; i < typeParameterNames.length; i++) {
if (buf.length() > 0) {
buf.append(lineDelimiter).append(lineStart);
}
buf.append("@param <").append(typeParameterNames[i]).append('>'); //$NON-NLS-1$
}
for (int i= 0; i < paramNames.length; i++) {
if (buf.length() > 0) {
buf.append(lineDelimiter).append(lineStart);
}
buf.append("@param ").append(paramNames[i]); //$NON-NLS-1$
}
if (returnType != null && !returnType.equals("void")) { //$NON-NLS-1$
if (buf.length() > 0) {
buf.append(lineDelimiter).append(lineStart);
}
buf.append("@return"); //$NON-NLS-1$
}
if (exceptionNames != null) {
for (int i= 0; i < exceptionNames.length; i++) {
if (buf.length() > 0) {
buf.append(lineDelimiter).append(lineStart);
}
buf.append("@throws ").append(exceptionNames[i]); //$NON-NLS-1$
}
}
...
请注意,无法附加返回类型。仅在模板中插入@return
。
至少有一种非常黑客的方法。您仍然可以转到窗口 - &gt;更新模板偏好 - &gt; Java - &gt;代码风格 - &gt;代码模板 - &gt;评论,然后选择修改以编辑评论模板。然后,您可以将模板更改为:
/**
* ${tags}
* @return ${return_type}
*/
有关可用变量,请参阅http://help.eclipse.org/mars/topic/org.eclipse.jdt.doc.user/concepts/concept-template-variables.htm。
但是这会导致添加两个@return
条评论。如其他答案中所述,不需要添加返回类型,因为Javadoc生成器可以自动确定返回类型。如果您正在解析其他工具中的注释,则上述解决方法可以解决它。