我有一些C代码的Java包装器,其中通过手动重载相关方法来模拟默认参数. [示例在Does Java support default parameter values?中.]在一种情况下,C fn具有3个可选参数,因此我不得不用Java编写8个方法.
现在,我想为上述方法编写JavaDocs.有什么办法可以避免将相同的文本写8次?除了冗长之外,这还将是维护的噩梦…
EDit:这是一个玩具示例,说明了方法的签名:
void foo(int i, String s, double d);
void foo(int i, String s);
void foo(int i, double d);
void foo(int i);
void foo(String s, double d);
void foo(String s);
void foo(double d);
void foo();
解决方法:
一种解决方案是在具有所有参数的方法中编写完整的Javadoc文档,然后使用@link和/或@see指令以超载方式链接至该文档,例如:
/**
* The parameters in the wrapped C++ method are all optional,
* so we had to write an overload for each parameter combination.
* @param i the int parameter used for x.
* @param s the string parameter used for y.
* @param d the double parameter used for z.
*/
void foo(int i, String s, double d);
/**
* Overload of the {@link #foo(int, String, double)} method with a default {@code d}.
*/
void foo(int i, String s);
/**
* @see #foo(int, String, double)
*/
void foo(int i, double d);
...