请在将其标记为重复之前阅读该帖子。
我不是Java专家
这是我想要做的简化代码:
import java.util.ArrayList;
public class Parameter {
private static ArrayList<Integer> quantityArray = new ArrayList<>();
public static void quantityPriorityValues() {
int q = 0 ;
for (int i = 0; i < 5 ; i++ ) {
quantityArray.add(q);
q++;
}
}
public static ArrayList<Integer> getQuantityArray() {
return quantityArray;
}
public void setQuantityArray(ArrayList<Integer> quantityArray) {
this.quantityArray = quantityArray;
}
}
public class Connection {
public void getParameters () {
i = 0;
Parameter.quantityPriorityValues();
while (i < 5) {
int quantity = Parameter.getQuantityArray().get(i);
System.out.println(quantity);
i++;
}
}
}
它总是打印出arraylist的最后一个值。
我检查了有关此问题的答案,例如此one和此one,他们都在static
字段中说明问题。所以我尝试从static
中移除ArrayList<Integer> quantityArray
non-static
但这意味着getter和setter也应该Connection
,而且我无法在webpackJsonp([0],{
/***/ 0:
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(1);
__webpack_require__(74);
module.exports = __webpack_require__(76);
/***/ },
/***/ 76:
/***/ function(module, exports) {
"use strict";
import 'app/tools/typescriptImports.ts';
import * as mainScreenHelper from 'app/tools/mainScreenHelper';
import React from 'react';
import * as reactDom from 'react-dom';
import Router from 'react-router';
import createBrowserHistory from 'history/lib/createBrowserHistory';
import routes from 'app/tools/routes';
import 'style/app.scss';
import 'font-awesome/scss/font-awesome.scss';
mainScreenHelper.removeLoadingScreen();
mainScreenHelper.createReactApp();
/***/ }
});
//# sourceMappingURL=app.js.map
类中调用getter。
我想要这个输出:0 1 2 3 4
但是我得到了这个输出:4
有没有人有其他解决方案?
答案 0 :(得分:0)
在你的getParameters()函数中 创建一个ArrayList,如:
ArrayList<Integer> quantityArray = Parameters.getQuantityArray();
你可以改变你的while循环,如:
for (Integer i : quantityArray)
System.out.println(i);
应该有效