我试图在与我的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的特定实例。

10-01 17:58