返回在另一个方法中创建的数组

时间:2015-09-16 17:42:38

标签: java arrays methods global local

由于赋值限制,我需要能够通过getter方法(即getArray())返回一个数组,该方法必须在另一个方法中本地创建(因为它的大小取决于该方法中的其他函数) )。基本上我有一个固定容量数组,我用来自用户输入的令牌填充,然后需要创建另一个数组,其大小与令牌数量相同(不再是空值)。由于某种原因,必须在扫描输入标记的方法中创建较小的数组,但我不知道如何将最终数组传递给getter方法,因为我不能全局初始化数组的大小。

编辑: 我用全局变量创建较小的数组。该变量从零开始,每次找到一个标记时递增,因此较小的数组是合适的大小。赋值规则强制我在执行扫描的方法中声明数组,因此数组被强制为本地。它必须在扫描方法中声明并在getter方法中返回,我不知道如何调和这两者。

我使用对象数组,因为数组项是各种相似但不同的对象。

int itemsScanned = 0;

public void scanStuff(){
//does the scanning

    Object[] array = new Object[itemsScanned]
    int arrayIndex = 0;
    while (arrayIndex < itemsScanned){
        array[arrayIndex] = largeArray[arrayIndex];
        arrayIndex++;
    }
}

public Object[] getArray(){
    return array
}

1 个答案:

答案 0 :(得分:0)

现在array是一个局部变量。它将无法用于其他方法。您需要在课程中将其设为字段

class A {
    Object[] array;
    public void scan() {
        array = new Object[]{this};
    }

    public Object[] getArray() {
        return array;
    }
}