JavaDoc for多签名方法

wgxvkvu9  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(185)

假设我有一个带有多个签名的方法(只是一个愚蠢的例子)。带有所有参数的方法才是真正的主力,而所有其他方法都是方便快捷的捷径。
我已经使用JavaDoc记录了这个主力方法。由于所有其他方法的工作原理相同,我不想重复的文件。
在JavaDoc中有没有一种方法可以链接到完整的文档-或者其他一些不必一遍又一遍地重写文档的方法?

/**
     * Function to format a string
     * 
     * @param s string to be formatted
     * @param bold string should be bold?
     * @param cursive string should be cursive?
     *                
     * @return a formatted string 
     */
    public static String formatMe(String s, Boolean bold, Boolean cursive){
        String res = s;

        // handle bold option
        if (bold) {
            res = "BOLD" + res + "BOLD";
        }

        // handle cursive option
        if (cursive) {
            res = "KURSIVE" + res + "KURSIVE";
        }

        // return
        return res;
    }

    public static String formatMe(){
        return formatMe("", false, false);
    }
    
    public static String formatMe(String s){
        return formatMe(s, false, false);
    }```
oogrdqng

oogrdqng1#

是...不...
OOTBJavaDoc不提供为一组方法(或其他元素)提供相同文档的功能。但是你可以参考一个已经存在的文档,像这样:

/**
 * Function to format a string.
 * 
 * @param s The string to be formatted.
 * @param bold {@code true} if the string should be bold, {@code false}
 *    otherwise.
 * @param cursive {@code true} if the string should be cursive, {@code false}
 *    otherwise.
 * @return A formatted string.
 */
public static String formatMe( final String s, final boolean bold, final boolean cursive )
{
    var retValue = s;

    // handle bold option
    if( bold ) retValue = "BOLD" + retValue + "BOLD";

    // handle cursive option
    if( cursive ) retValue = "KURSIVE" + retValue + "KURSIVE";

    // Done!
    return retValue;
}

/**
 * Function to format a string.
 * 
 * Calls
 * {@link #formatMe(String,boolean,boolean)}
 * with the arguments {@code "",false,false}.
 *
 * @return A formatted string. 
 *
 */
public static String formatMe()
{
    return formatMe( "", false, false );
}

/**
 * Function to format a string.
 * 
 * Calls
 * {@link #formatMe(String,boolean,boolean)}
 * with the arguments {@code s,false,false}.
 *
 * @param s The string to be formatted.
 * @return A formatted string.
 */
public static String formatMe( String s )
{
    return formatMe( s, false, false );
}

或者,您可以实现自己的JavaDoc标记,它可以沿着{@inheritDoc}的方式工作:

/**
 * Function to format a string.
 * 
 * @param s The string to be formatted.
 * @param bold {@code true} if the string should be bold, {@code false}
 *    otherwise.
 * @param cursive {@code true} if the string should be cursive, {@code false}
 *    otherwise.
 * @return A formatted string. 
 */
public static String formatMe( final String s, final boolean bold, final boolean cursive )
{
    var retValue = s;

    // handle bold option
    if( bold ) retValue = "BOLD" + retValue + "BOLD";

    // handle cursive option
    if( cursive ) retValue = "KURSIVE" + retValue + "KURSIVE";

    // Done!
    return retValue;
}

/**
 * {@copyDoc #formatMe(String,boolean,boolean)}
 */
public static String formatMe()
{
    return formatMe( "", false, false );
}

/**
 * {@copyDoc #formatMe(String,boolean,boolean)}
 */
public static String formatMe( String s )
{
    return formatMe( s, false, false );
}

您的新标记可以复制@return标记和那些与当前签名匹配的@param标记以及一般描述。
但我个人,我只是使用复制,粘贴和编辑代替。

相关问题