我试图在与我的Quadtree文件分开的文件中创建Quadtree。
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
当我没有“ Quadtree”的时候。在边界之前,我得到
error: cannot find symbol
有什么建议我可以做什么?
编辑:
这是我的Quadtree课程的一部分
import java.util.ArrayList;
公共课Quadtree
{
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
的特定实例。