2016-12-02 105 views
1

在Maven项目有了这个类:奇怪的Javadoc警告:可以找到方法

package test; 

public class A { 
    /** 
    * Used by {@link B#setC(C)}. 
    * Used by {@link A.B#setC(C)}. 
    * Used by {@link test.A.B#setC(C)}. 
    */ 
    public class C { 
    } 

    public class B { 
     public void setC(C c) { 
      System.out.println("hello!"); 
     } 
    } 
} 

给了我这样的警告:

C:\Users\user\workspace\t>mvn clean javadoc:javadoc 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building t 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ t --- 
[INFO] Deleting C:\Users\user\workspace\t\target 
[INFO] 
[INFO] >>> maven-javadoc-plugin:2.10.4:javadoc (default-cli) > generate-sources @ t >>> 
[INFO] 
[INFO] <<< maven-javadoc-plugin:2.10.4:javadoc (default-cli) < generate-sources @ t <<< 
[INFO] 
[INFO] --- maven-javadoc-plugin:2.10.4:javadoc (default-cli) @ t --- 
[WARNING] Source files encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent! 
[INFO] 
Loading source files for package test... 
Constructing Javadoc information... 
Standard Doclet version 1.8.0_101 
Building tree for all the packages and classes... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\A.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\A.B.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\A.C.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\package-frame.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\package-summary.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\package-tree.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\constant-values.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\class-use\A.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\class-use\A.C.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\class-use\A.B.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\test\package-use.html... 
Building index for all the packages and classes... 
Generating C:\Users\user\workspace\t\target\site\apidocs\overview-tree.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\index-all.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\deprecated-list.html... 
Building index for all classes... 
Generating C:\Users\user\workspace\t\target\site\apidocs\allclasses-frame.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\allclasses-noframe.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\index.html... 
Generating C:\Users\user\workspace\t\target\site\apidocs\help-doc.html... 
3 warnings 
[WARNING] Javadoc Warnings 
[WARNING] C:\Users\user\workspace\t\src\main\java\test\A.java:9: warning - Tag @link: can't find setC(C) in test.A.B 
[WARNING] C:\Users\user\workspace\t\src\main\java\test\A.java:9: warning - Tag @link: can't find setC(C) in test.A.B 
[WARNING] C:\Users\user\workspace\t\src\main\java\test\A.java:9: warning - Tag @link: can't find setC(C) in test.A.B 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.521 s 
[INFO] Finished at: 2016-12-02T10:10:28+01:00 
[INFO] Final Memory: 17M/309M 
[INFO] ------------------------------------------------------------------------ 

C:\Users\user\workspace\t> 

为什么javadoc中说,他无法找到方法?

+0

可以试试'public void setC'? – degr

+0

@degr同样的问题。 –

+0

尝试使用'{@link A.B#setC(C)}' – Jens

回答

5

尝试Used by {@link A.B#setC(A.C)}

+0

就是这样。谢谢。 –

+0

@PeterRader:所以[我的猜测](http://stackoverflow.com/questions/40928350/strange-javadoc-warning-can-find-method?noredirect=1#comment69067930_40928350)是对的! :-) –

+0

@ T.J.Crowder好的,但它是javadoc中的一个bug,因为eclipse真的知道我的意思,如果我strg + lmb的链接。 –