Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多嵌套类Java_Java_Class - Fatal编程技术网

多嵌套类Java

多嵌套类Java,java,class,Java,Class,嗨,我有一个类,里面有多层嵌套类,我想知道为什么它不工作。由于某些原因,我无法创建新的StackNode,我想知道为什么会这样 public class MultiStack { Stack1[] arr; int lim,numplate,index; MultiStack(int limit, int total) { lim = limit; numplate = total; int ssize =0;

嗨,我有一个类,里面有多层嵌套类,我想知道为什么它不工作。由于某些原因,我无法创建新的StackNode,我想知道为什么会这样

public class MultiStack {
    Stack1[] arr;
    int lim,numplate,index;

    MultiStack(int limit, int total) {
        lim = limit;
        numplate = total;
        int ssize =0;
        if(total%lim==0) {
            ssize = total/lim;
        } else {
            ssize = (total/lim) +1;
        }
        arr = new Stack1[ssize];
    }

    class Stack1 {
        StackNode top;
        int size;

        class StackNode{
            StackNode next;
            int value;
        }
    }
    public void push(int value){
        if(arr[index].size < lim) {
            push1(index);
        }
    }
    public void push1(int index) {
        arr[index].size++;
        StackNode cur = new StackNode(); //here is my issue
        cur.next = arr[index].top;
        arr[index].top = cur;
    }
}
公共类多级存储{
Stack1[]arr;
int lim,numplate,index;
多批次(整数极限,整数总计){
lim=极限;
numplate=总数;
int-ssize=0;
如果(总的%lim==0){
ssize=总计/lim;
}否则{
ssize=(总计/lim)+1;
}
arr=新堆栈1[ssize];
}
第1类{
堆栈节点顶部;
整数大小;
类堆栈节点{
StackNode-next;
int值;
}
}
公共无效推送(int值){
if(arr[index]。大小
Stack1
和类
StackNode
都不是静态的

因此,您需要一个周围类的实例来实例化它

当您尝试实例化类
StackNode
时,您处于一个
MultiStack
的对象中:

public void push1(int index) {
    arr[index].size++;
    Stack1.StackNode cur = new Stack1().new StackNode(); // here is my issue
    cur.next = arr[index].top;
    arr[index].top = cur;
}

Stack1
和类
StackNode
都不是静态的

因此,您需要一个周围类的实例来实例化它

当您尝试实例化类
StackNode
时,您处于一个
MultiStack
的对象中:

public void push1(int index) {
    arr[index].size++;
    Stack1.StackNode cur = new Stack1().new StackNode(); // here is my issue
    cur.next = arr[index].top;
    arr[index].top = cur;
}

你能详细说明“不工作”吗?另外,你知道吗?它不允许我创建一个新的StackNode()你能详细说明“不工作”吗?另外,你知道吗?它不允许我创建一个新的StackNode()