为什么Eclipse为Javadoc @see注释的目标类添加导入?
如果你通过findbugs或PMD运行它,他们会抱怨它是一个未使用的导入。
哪个是正确的?我个人不明白为什么eclipse想要导入它。
import java.util.List;
/**
* @see List
*/
“link”
也是如此 import java.util.List;
/**
* {@link List}
*/
有没有任何想法?
答案 0 :(得分:8)
了解import语句的重要一点是,它们只是开发人员避免在任何地方使用Type
的完全限定名称(FQN)的便利机制。例如,只需使用简单名称java.util.List
而不是在任何地方使用List
,导入java.util.List
即可让您引用它。
导入对生成的字节码的效率或大小有 no 影响,因为它们的使用如上所述,并且它们不会导致任何类与您的类“链接”或类似的类。
对于JavaDoc注释,如果使用FQN,则无需导入Eclipse即可解析Type
引用。实际上,您使用的是简单的名称,因此Eclipse会导入相应的Type
。
答案 1 :(得分:2)
我不了解Eclipse,但如果您没有在{@link}
或@see
标记中写入全名,则Javadoc需要导入。所以你可以试试
@see java.util.List
代替。
答案 2 :(得分:1)
Eclipse执行此操作的唯一原因是,在查看源代码时,您可以执行命令单击(ctrl +单击)并导航到@see中的类。
否则您的班级名称将没有上下文。唯一的其他解决方法是提供完整的上下文路径。 (以及包名称)。
答案 3 :(得分:0)
未使用的导入是Java编译器不需要的导入。
所以PMD对于标记它是正确的。