2011-04-18 72 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