在Eclipse中更改方法签名时,如何自动更新Javadoc?
我在我的Java项目中使用Eclipse IDE。
我有一个问题。 我的项目中的方法有javadoc注释,如下所示:
/** * Retruns the string representation of a input stream * @param in * @return * @throws IOException */ public static String getStringFromInputStream (InputStream in) throws IOException { StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = in.read(b)) != -1;) { out.append(new String(b, 0, n)); } return out.toString(); }
现在我想知道,无论何时如果我在方法的签名中进行更改,这些更改都会自动反映在javadoc中。
Eclipse提供了相当不错的选项来确保javadoc的正确性,除了Renper重构JesperE提到的:
- Change方法签名重构操作也修改了javadoc(添加/删除必要的标记)。 您应该使用这个或重命名来修改已在使用的代码。
- 如果在Preferences / Java / Editor / Typing页面上激活Add Javadoc标记 ,则在方法之前键入
/**
+ Enter后,Eclipse会生成正确的javadoc存根。
您还可以设置编译器选项以检查Preferences / Java / Compiler / Javadoc上的javadoc缺失标记。 在这种情况下,您会收到编译器关于缺失/额外标记的警告,并且您有quickfix( Ctrl + 1 )来修复它们。 从长远来看,确保现有javadoc的正确性是一个很好的选择。
我不知道有任何方法可以自动同步Javadoc标头,但是如果使用Ctrl-1
+ Rename in file
重命名参数,则会适当地重命名Javadoc标头。
使用“更新引用”选项进行重构是不够的。 您需要确保在Window-> Preferences,Java-> Compiler-> Javadoc中选中“Process Javadoc comments”。 像你喜欢的那样调整首选项页面,它会正常工作。
只需按方法名称上的ALT + SHIFT + j并删除多余的行:
之前:
/** * Copies all the details from the passed template into the passed new * header. * * @param pNewHeader */ private void doCopy(int pNewHeader, int pTemplate) {
后:
/** * Copies all the details from the passed template into the passed new * header. * * @param pNewHeader << DELETE */ << DELETE /** << DELETE * @param pNewHeader * @param pTemplate */ private void doCopy(int pNewHeader, int pTemplate) {
按Atl+Shift+R
并更改
正如我已经评论过的场景,其中重构不起作用
所有答案都是指重构选项。 但是,如果我添加了一个新的参数或从方法签名中删除了一个参数,该怎么办? 在那种情况下,如何更新javadoc?
我找到了一种解决方法,但是它仍然不是一个自动化过程,并且不适合大量的更改。
解决方法是,
1.删除javadoc注释并使其成为明文注释,即更新/**' and change it to just
/ *’。
2.现在再次在方法签名/声明上方输入/**
并按Enter键。 它将重新填充更新的参数并返回信息。 现在只需将描述行从旧注释移动到新注释。
3.您可以使用Alt + 向上 / 向下箭头来实现此目的。
4.在正确的位置复制后,完成删除旧的javadoc注释。