我有一个将整数值输入全局数组的项目。我正在使用ArrayList,似乎无法弄清楚如何将值添加到数组中,我不太确定如何将整数添加到数组中,因为它是全局的,而actionPerformed函数是本地的。另外,声明数组的位置是否正确?
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
int intEnter = Integer.parseInt(this.txtEnter.getText());
}
public static void main(String args[]) {
ArrayList <Integer> intMarks = new ArrayList();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MarksCalculator().setVisible(true);
}
});
}
答案 0 :(得分:1)
应将数组声明为类的静态字段。
private static ArrayList <Integer> intMarks;
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
int intEnter = Integer.parseInt(this.txtEnter.getText());
intMarks.add(intEnter);
}
public static void main(String args[]) {
intMarks = new ArrayList();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MarksCalculator().setVisible(true);
}
});
}
答案 1 :(得分:0)
如果arraylist是全局的,则可以在同一类的任何函数中的任何位置进行访问。同时可以添加mArrayListName.add(1)之类的值;即用于int类型的arraylist
答案 2 :(得分:0)
您可以使用singleton设计模式。
public class Singleton {
private ArrayList<Object> arrayList;
private static Singleton instance;
private Singleton(){
arrayList = new ArrayList<Object>();
}
public static Singleton getInstance(){
if (instance == null){
instance = new Singleton();
}
return instance;
}
public ArrayList<Object> getArrayList() {
return arrayList;
}
}
您可以在任何课程中增加价值。
public class ExampleClass{
Singleton.getInstance().getArrayList().add(sampleObject);
}
注意:如果提供多线程处理,则可以使用double check locking.,因为ArrayList不是线程安全的。
答案 3 :(得分:0)
在您的代码中,数组列表intMarks
不是全局的,它是main
方法的局部变量。
要使其成为全局变量,您必须使其成为类的直接变量。
class ClassName{
private static ArrayList <Integer> intMarks;
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
int intEnter = Integer.parseInt(this.txtEnter.getText());
intMarks.add(intEnter);
}
public static void main(String args[]) {
intMarks = new ArrayList<>();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MarksCalculator().setVisible(true);
}
});
}
}
此外,您必须将intMarks
设为静态,才能在main
方法中使用它