我不明白爲什麼我收到以下錯誤 - 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.
}
我不明白爲什麼我收到以下錯誤 - 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.
}
它是在一個子包:
java.awt.geom.Line2D
所以你需要任一
import java.awt.geom.Line2D;
或
import java.awt.geom.*;
個
應該從這裏可以學到一些經驗教訓:
星從一個包導入只有進口類。它們也不從子包中導入。實際上,Java中的子包是純粹的句法。就Java語言而言,不同包或子包中的類之間不存在語義關係。
明星進口傾向於掩蓋問題。很多人建議不要使用它們。全部寫入輸入。或者更好的是,使用可以完成類名完成的IDE,並生成缺少的導入。 (當然,你需要小心一點時,例如IDE爲您提供多個完成的(比如說)Date
或List
。)
搜索和閱讀的javadoc是幫助這類問題的好辦法。 javadoc搜索(或類列表掃描)會告訴您Line2D
類的完全限定名稱。
謝謝!我是一個小菜館 – 2014-10-18 00:40:10
@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
爲什麼不awt。*導入geom? – 2014-10-18 00:42:49