有界类型参数 @see 和 @link javadoc



如何在javadoc的@see中引用方法,并@link它们是否具有绑定类型参数?

例:

public class A { }
public interface I<J> { }
public class F {
    public static <T extends A & I<B>, B> String newThing(T bondedTypeObject, List<B> list) {
      /*...*/
    }
    public static <T extends A & I<B>, B> String newThing(T bondedTypeObject, B anotherObject) {
      /*...*/
    }

    /**
     * Uses {@link #newThing(T bondedTypeObject, List<B> list) newThing} to create a super new thing.
     */
    public static String createSuperNewThing(...) {
       return newThing(...);
    }
}

你如何编写用于创建SuperNewThing的javadoc链接到正确的newThing方法?

在这种情况下,Oracle 文档不是很清楚:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javadoc.html#specifyingname

您需要指定参数的擦除,例如:

/**
 * Uses {@link newThing(A bondedTypeObject, List list)} to create...
 */

请注意,类型参数T extends SomeClass & SomeInterface的擦除是 SomeClass

下面是 Oracle Java 文档中的示例。在集合中链接到此方法

static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 

您将使用以下链接:

{@link Collections.html#synchronizedMap(Map)}

最新更新