2014-10-18 96 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类的完全限定名称。