Javadoc bug: @link can't handle Generics “<>”

后端 未结 3 1177
南笙
南笙 2020-12-15 15:41

Consider a static method in a class, which I have documented it using javadoc:

/**
 * Description here.
 *
 * @param         


        
相关标签:
3条回答
  • 2020-12-15 16:10

    It may not be what you're looking for, but I have learnt to live with something like * @return {@link List} of {@link RfRequestSummaryDto}

    0 讨论(0)
  • 2020-12-15 16:12

    Similar to David Conrad solution, you can use the full signature as a link description, using syntax:

    {@link class#method(signature) text-to-display}
    

    Remember to escape < and >. For example:

     {@link #parse(Map, String, String) parse(Map&lt;String, String&gt;, String, String)}
    
    0 讨论(0)
  • 2020-12-15 16:19

    The parameterized types are NOT part of the method's signature.

    Java implements Generics with Type Erasure. The concept of Type Erasure is that the generic types are only available at compile time, at which point they are "erased"; meaning they are stripped from the class's bytecode. Thus they are not accessible at runtime and are not part of method's signature.

    So, there's no real reason for them to be part of the Javadoc link's signature, because you cannot overload two methods with generic types that resolve to the same raw types: there cannot be an ambiguity on the generic types in your source's signature.

    Additionally, Javadoc supports HTML tags and I assume this could be another reason why it bites the dust here, but I really doubt the Javadoc processing tool was this badly implemented.

    0 讨论(0)
提交回复
热议问题