Java 不可编译源代码-错误的树类型错误,找不到符号错误

Java 不可编译源代码-错误的树类型错误,找不到符号错误,java,Java,我得到了“不可编译的源代码-错误的树类型”错误和“无法” “查找符号”错误我在保存时关闭了编译,现在get找不到符号。我在Asterbofields generate方法中初始化Asterbote()的地方似乎有问题,所以我觉得我的初始化不正确,但我还没有弄清楚如何初始化 package asteroidfield; import java.util.TreeSet; import blobzx.BlobGUI; import blobzx.SandBox; import blobzx.Sand

我得到了“不可编译的源代码-错误的树类型”错误和“无法” “查找符号”错误我在保存时关闭了编译,现在get找不到符号。我在Asterbofields generate方法中初始化Asterbote()的地方似乎有问题,所以我觉得我的初始化不正确,但我还没有弄清楚如何初始化

package asteroidfield;
import java.util.TreeSet;
import blobzx.BlobGUI;
import blobzx.SandBox;
import blobzx.SandBoxMode;



public class AsteroidField implements BlobGUI {

    SandBox ast;

    public static void main (String [] Args){
        new AsteroidField();       
    }

    public AsteroidField (){
        ast = new SandBox();

        ast.setSandBoxMode(SandBoxMode.FLOW);   
        ast.setFrameRate(15);
        ast.init(this);

    }

    @Override
    public void generate() {
       // This is the line that is breaking the code.   
         Asteroid asteroid = new Asteroid();

    }

}








    package AsteroidField;

    import blobzx.BlobUtils;
    import blobzx.PolyBlob;
    import java.awt.Point;


    import java.util.Random;


    public class Asteroid extends PolyBlob{

    // private static Random random = new Random();

    public Asteroid(int velX, int velY, double rot) {

       super(-100, -100, rot);

       setDelta(velX, velY);

       Random sides = new Random();
       Random dist = new Random();
       int si = sides.nextInt(9 - 5 + 1) + 5;

       int di =  dist.nextInt(15 - 5 + 1) + 5;

       double region = (2 * Math.PI) / si;                 
       double []angle = new double [si];

       int [] xInt = new int[si];
       int [] yInt = new int[si];
       double [] x = new double [si];
       double [] y = new double [si];
       System.out.print("m");



       for(int i = 0; i < si; i++){


        angle[i] = (i*region)+(Math.random()*region);        
        Point cord = BlobUtils.rotatePoint(di, angle[i]);

        x[i] = cord.getX();
        y[i] = cord.getY();
       }
       for (int i = 0; i > x.length; i ++){
        xInt[i] = (int) x[i];
        yInt[i] = (int) y[i];
       }


       setPolygon(xInt, yInt);


       }
      }
package字段;
导入java.util.TreeSet;
导入blobzx.BlobGUI;
导入blobzx.SandBox;
导入blobzx.SandBoxMode;
公共类字段实现BlobGUI{
沙箱试验;
公共静态void main(字符串[]Args){
新字段();
}
公共字段(){
ast=新沙盒();
ast.setSandBoxMode(SandBoxMode.FLOW);
ast.setFrameRate(15);
ast.init(this);
}
@凌驾
public void generate(){
//这是破坏代码的一行。
小行星小行星=新小行星();
}
}
包装场;
导入blobzx.BlobUtils;
导入blobzx.PolyBlob;
导入java.awt.Point;
导入java.util.Random;
公共级小行星扩展了PolyBlob{
//私有静态随机=新随机();
公共小行星(int velX、int velY、双旋转){
超级(-100,-100,腐烂);
setDelta(velX,velY);
随机边=新的随机边();
Random dist=新的Random();
int si=边。下一个(9-5+1)+5;
int di=dist.nextInt(15-5+1)+5;
双区域=(2*Math.PI)/si;
双[]角度=新双[si];
int[]xInt=新的int[si];
int[]yInt=新的int[si];
double[]x=新的double[si];
double[]y=新的双精度[si];
系统输出打印(“m”);
对于(int i=0;ix.length;i++){
xInt[i]=(int)x[i];
yInt[i]=(int)y[i];
}
设置多边形(xInt,yInt);
}
}
我发现两个问题:

1) 可能是因为,你写道:

Asteroid asteroid = new Asteroid();
但Asteroid类没有默认构造函数(至少,我在代码中没有看到)

2) 或者可能是因为您使用的包不同,并且在字段中未使用导入

package asteroidfield;
...
package AsteroidField;
您应该使用或使用一个包或添加导入小行星字段;在这个领域,我认为。

我看到了两个问题:

1) 可能是因为,你写道:

Asteroid asteroid = new Asteroid();
但Asteroid类没有默认构造函数(至少,我在代码中没有看到)

2) 或者可能是因为您使用的包不同,并且在字段中未使用导入

package asteroidfield;
...
package AsteroidField;

您应该使用或使用一个包或添加导入小行星字段;我想,在这个字段中。

重新检查所有类中的包声明


在NetBeans中,当包的一个类中的包声明引用不存在或错误的包时,就会观察到这种行为。NetBeans通常会检测并突出显示此错误,但已知它会失败并误导性地将包报告为没有错误,而事实并非如此。

请重新检查所有类中的包声明


在NetBeans中,当包的一个类中的包声明引用不存在或错误的包时,就会观察到这种行为。NetBeans通常会检测并突出显示此错误,但已知它会失败,并误导性地将包报告为无错误,而事实并非如此。

那么我是否需要向Asteroid代码添加构造函数?是的,您需要或添加public Asteroid()构造函数,或使用
Asteroid Asteroid=new Asteroid(velX,velY,rot)实际上,这是包装问题,我不敢相信我没有看到这一点。非常感谢。如果这个答案解决了你的问题,你能接受吗?那么我需要为小行星代码添加一个构造函数吗?是的,你需要或添加公共小行星()构造函数,或者使用
Asteroid Asteroid=new Asteroid(velX,velY,rot)实际上,这是包装问题,我不敢相信我没有看到这一点。非常感谢。如果这个答案解决了你的问题,你能接受吗?