我正试图在一个独立于四叉树文件的文件中创建一个四叉树。
Quadtree<String> blocky = new Quadtree<String>(rand.nextInt(5), new Quadtree.Boundry(0,0,rand.nextInt(750),rand.nextInt(750)));
然而,我在终端中不断收到这个错误。
error: an enclosing instance that contains Quadtree.Boundry is required
当我在Boundry之前没有"四叉树"时,我会得到
error: cannot find symbol
有什么建议吗?
编辑:
这是我的四叉树类的一部分
import java.util.ArrayList;
公共类四叉树{
class Node{
int x, y;
E elem;
Node(int x, int y, E elem)
{
this.x = x;
this.y = y;
this.elem = elem;
}
}
final int QT_NODE_CAPACITY = 64;
int level = 0;
ArrayList<Node> nodes;
public Quadtree NW = null;
public Quadtree NE = null;
public Quadtree SE = null;
public Quadtree SW = null;
Boundry bdry;
public Quadtree(int level, Boundry bdry)
{
this.level = level;
this.bdry = bdry;
nodes = new ArrayList<Node>();
}
class Boundry
{
public int getXMin(){
return xMin;
}
public int getXMax(){
return xMax;
}
public int getYMin(){
return yMin;
}
public int getYMax(){
return yMax;
}
public Boundry(int xMin, int xMax, int yMin, int yMax)
{
super();
this.xMin = xMin;
this.xMax = xMax;
this.yMin = yMin;
this.yMax = yMax;
}
public boolean containsCoordinate(int x, int y)
{
return (x >= this.getXMin() && x <= this.getXMax() && y >= this.getYMin() && y <= this.getYMax());
}
int xMin, xMax, yMin, yMax;
}
Boundry
必须声明为要实例化的static
,而不限于Quadtree
的特定实例。