如何在javadoc中对方法参数进行引用,以便可以重构引用?
例如:
public class A {
private int field;
/**
* @param p
* {@link #field} is initialized using the value of p.
*/
void foo(int p)
{
//...
}
}
如果我在上面的代码中重命名参数p,我想要
" ...使用p"
的值
相应更改的文本(正如重命名字段将更改{@link #field}
)。
我读过this旧帖子,还有更多来源,但找不到办法。
javadoc是否支持它?
答案 0 :(得分:3)
如果您将名称放在@param
之后(在Eclipse中测试过),您的IDE将能够重构该名称,但如果您在评论中的其他位置引用它,则无法重构该名称。从语言的角度来看,没有理由这样做。为什么不写@param p {@link #field} is initialized using this value.
?
答案 1 :(得分:2)
由于Java擦除,方法参数名称是短暂的,它们不是静态类定义的一部分。因此,void foo(int p)
被更改为void foo(int x)
不被视为重构,因为它保证它不会以任何方式影响程序的逻辑(除非参数重载类字段)。
因此在javadoc中不能有标识方法参数的静态链接。当您重构该方法时,@param
之后的单词发生变化这一事实本身就是IDE提供的一种优势。
答案 2 :(得分:2)
IntelliJ IDEA将在JavaDoc注释中的任何位置重构参数名称,只要将其放在大括号中,例如{@param p}
FormsModule
此外,Java的类型擦除(在接受的响应中提到)与变量名的范围无关。类型擦除是Java设计人员为了添加Java Generics而实现的折衷,但仍然保持语言向后兼容。泛型的所有参数化都被删除 - 它实际上都不是字节代码。这就是为什么Java Generics如此有限 - 你不能做例如
/**
* @param p
* {@link #field} is initialized using the value of {@param p}.
*/
如果T是参数化类型,因为在运行时,所有关于T的信息都已被删除。
答案 3 :(得分:1)
您是否尝试过配置eclipse javadoc首选项? Window->偏好设置,Java->编译器> Javadoc 。检查 处理Javadoc评论 选项。
此外,如果您选中 Window->偏好设置> Java->编辑器 - >打字 - > Javadoc和评论区域+ 添加Javadoc标记 它将添加适当的javadoc标记。一旦你有两个激活的Eclipse将警告你有关错误的参数,你可以使用 ctrl 1 来“快速修复”它。