代码之家  ›  专栏  ›  技术社区  ›  Mohan

为具有(模拟的)可选/默认参数的函数编写Javadoc

  •  4
  • Mohan  · 技术社区  · 8 年前

    我有一些C++代码的Java包装器,其中我通过手动重载相关方法来模拟默认参数。[示例如所示 Does Java support default parameter values? .] 在一个例子中,C++fn有3个可选参数,所以我不得不用Java编写8个方法。

    现在我想为上述方法编写JavaDocs。有什么方法可以避免把基本相同的文本写8次吗?除了冗长之外,这将是一场维护噩梦。。。

    编辑:下面是一个玩具示例,演示了方法的签名:

    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();
    
    1 回复  |  直到 8 年前
        1
  •  5
  •   Lolo    8 年前

    一种解决方案是用包含所有参数的方法编写完整的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);
    
    ...