2014-10-18 95 views
0

我不明白爲什麼我收到以下錯誤 - cannot find symbol - class Line2D - 當我嘗試編譯此代碼:找不到符號Line2D?

import java.awt.*; 

public class KochSegment 
{ 
    public Line2D base = new Line2D(); public Line2D[] Lines = new Line2D[4]; //error is on this line 

etc. 
} 

回答

3

它是在一個子包:

java.awt.geom.Line2D 

所以你需要任一

import java.awt.geom.Line2D; 

import java.awt.geom.*; 
+0

謝謝!我是一個小菜館 – 2014-10-18 00:40:10

+0

@RenéG我們都去過那裏!此外,只是供參考,你可能想考慮不使用通配符導入;)http://stackoverflow.com/questions/147454/why-is-using-a-wild-card-with-a-java-import-statement-bad – 2014-10-18 00:40:48

+0

爲什麼不awt。*導入geom? – 2014-10-18 00:42:49

3

應該從這裏可以學到一些經驗教訓:

  1. 星從一個包導入只有進口類。它們也不從子包中導入。實際上,Java中的子包是純粹的句法。就Java語言而言,不同包或子包中的類之間不存在語義關係。

  2. 明星進口傾向於掩蓋問題。很多人建議不要使用它們。全部寫入輸入。或者更好的是,使用可以完成類名完成的IDE,並生成缺少的導入。 (當然,你需要小心一點時,例如IDE爲您提供多個完成的(比如說)DateList。)

  3. 搜索和閱讀的javadoc是幫助這類問題的好辦法。 javadoc搜索(或類列表掃描)會告訴您Line2D類的完全限定名稱。