2011-04-18 71 views
3

为什么Eclipse会为Javadoc @see注释的目标类添加一个导入?为什么Eclipse在使用@See引用类时会导入类

如果你通过findbugs或PMD运行它们,他们会抱怨说它是一个未使用的导入。

那么哪个是正确的?我个人看不出为什么eclipse想要导入它。

import java.util.List; 
/** 
* @see List 
*/ 

这同样适用于 '链接'

import java.util.List; 
/** 
* {@link List} 
*/ 

是否有任何人有任何想法,为什么如此?

回答

8

了解导入语句的重要之处在于它们仅仅是开发人员的便利机制,以避免必须在任何地方使用完全限定名称(FQN)来满足Type的要求。例如,导入java.util.List可让您通过简单地使用简单名称List而不是在任何地方使用java.util.List来引用它。

进口有对生成的字节码的效率或大小的影响,因为它们的用法如上所述,并且它们不会导致任何类与您的类“连接”或类似。

对于JavaDoc注释,如果使用FQN,Eclipse将无需导入以便解决Type引用。实际上,您使用的是简单的名称,因此Eclipse会导入相应的Type

0

未使用的导入是Java编译器不需要的导入。

因此,PMD是正确的标记它。

1

Eclipse所做的唯一的原因是,在翻阅源代码的同时,您可以执行命令单击(Ctrl +单击)并导航到@see中的类。

否则你的类名不会有上下文。唯一的另一个解决方法是参见完整的上下文路径。 (连同包名称)。

+0

遗憾的是,Eclipse没有自动链接到完整软件包的选项。 – 2011-04-18 15:25:42

1

我不太了解Eclipse,但如果您未在{@link}@see标记中写入全名,则Javadoc需要导入。所以你可以尝试

@see java.util.List 

改为。

+0

获得此权利的荣誉。 – bmargulies 2011-04-18 15:36:54

+0

[SteveR](http://stackoverflow.com/users/6076839/stever)想要添加:如果你不想在javadoc中看到完全限定的名字,你也可以使用'@see java.util。列表列表“(它也适用于'@ link'标签)。 – 2017-01-12 13:17:55