Java 不可编译源代码-错误的树类型错误,找不到符号错误
我得到了“不可编译的源代码-错误的树类型”错误和“无法” “查找符号”错误我在保存时关闭了编译,现在get找不到符号。我在Asterbofields generate方法中初始化Asterbote()的地方似乎有问题,所以我觉得我的初始化不正确,但我还没有弄清楚如何初始化Java 不可编译源代码-错误的树类型错误,找不到符号错误,java,Java,我得到了“不可编译的源代码-错误的树类型”错误和“无法” “查找符号”错误我在保存时关闭了编译,现在get找不到符号。我在Asterbofields generate方法中初始化Asterbote()的地方似乎有问题,所以我觉得我的初始化不正确,但我还没有弄清楚如何初始化 package asteroidfield; import java.util.TreeSet; import blobzx.BlobGUI; import blobzx.SandBox; import blobzx.Sand
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)代码>实际上,这是包装问题,我不敢相信我没有看到这一点。非常感谢。如果这个答案解决了你的问题,你能接受吗?