Java 传递到另一个类时为空arraylist
我在一个类中创建了一个arraylist,但当我将它传递给另一个类时,它是空的。一个类中有元素,但另一个类中为空 这是我在一个类中的代码Java 传递到另一个类时为空arraylist,java,arraylist,Java,Arraylist,我在一个类中创建了一个arraylist,但当我将它传递给另一个类时,它是空的。一个类中有元素,但另一个类中为空 这是我在一个类中的代码 System.out.println(mot); Paint p=new Paint(mot, start ); 这是我在另一个类中的代码 ArrayList<String> motif; ArrayList<Integer> number; NewJFrame j=new NewJFrame(); public Paint(Arr
System.out.println(mot);
Paint p=new Paint(mot, start );
这是我在另一个类中的代码
ArrayList<String> motif;
ArrayList<Integer> number;
NewJFrame j=new NewJFrame();
public Paint(ArrayList<String> motif,ArrayList<Integer> number) {
initComponents();
motif=new ArrayList();
number=new ArrayList<>();
j=new NewJFrame();
}
public void paint(Graphics g) {
System.out.print(j.mot);
}
ArrayList基序;
数组列表数;
NewJFrame j=新的NewJFrame();
公共油漆(ArrayList图案,ArrayList编号){
初始化组件();
motif=新的ArrayList();
number=新的ArrayList();
j=新的NewJFrame();
}
公共空间涂料(图g){
系统输出打印(j.mot);
}
请告诉我如何解决空arraylist的问题?这两行创建了列表的新实例,请尝试更改它们:
motif=new ArrayList();
number=new ArrayList<>();
这两行创建列表的新实例,请尝试更改它们:
motif=new ArrayList();
number=new ArrayList<>();
更改以下代码行:
motif=new ArrayList();
number=new ArrayList<>();
更改以下代码行:
motif=new ArrayList();
number=new ArrayList<>();
尝试:
public Paint(ArrayList pMotif,ArrayList pNumber){
初始化组件();
motif=新的ArrayList();
motif.addAll(pMotif);//使用addAll
number=新的ArrayList();
motif.addAll(pNumber);//使用addAll
试试:
public Paint(ArrayList pMotif,ArrayList pNumber){
初始化组件();
motif=新的ArrayList();
motif.addAll(pMotif);//使用addAll
number=新的ArrayList();
motif.addAll(pNumber);//使用addAll
您正在覆盖这些行中新(空)版本的motif
和number
的副本
motif=new ArrayList();
number=new ArrayList<>();
如果要将它们设置为传入的ArrayList,请执行以下操作:
this.motif = motif;
this.number = number;
另一个选项是从传入的ArrayList复制值:
this.motif = new ArrayList(motif);
this.number = new ArrayList<>(number);
this.motif=新数组列表(motif);
this.number=新的ArrayList(number);
您正在覆盖这些行中新(空)版本的motif
和number
的副本
motif=new ArrayList();
number=new ArrayList<>();
如果要将它们设置为传入的ArrayList,请执行以下操作:
this.motif = motif;
this.number = number;
另一个选项是从传入的ArrayList复制值:
this.motif = new ArrayList(motif);
this.number = new ArrayList<>(number);
this.motif=新数组列表(motif);
this.number=新的ArrayList(number);
您正在将值传递给另一个类,因此您应该告诉编译器使用当前对象,即此对象
您正在使用构造函数赋值,因此,始终使用“this”或“super”(这是构造函数中的第一个语句)
使用
this.motif=motif;
this.number=number;您正在将值传递给另一个类,因此您应该告诉编译器使用当前对象,即此对象 您正在使用构造函数赋值,因此,始终使用“this”或“super”(这是构造函数中的第一个语句) 使用 this.motif=motif;
this.number=number;到底是什么问题?在哪里使用
motif
或number
?什么是j.mot
或只是mot
?motif=new ArrayList();
将使传递的arraylistmotif
成为arraylist的新实例,因此,由于它是新的,所以它是空的。我没有使用motif或number。Mot是另一个类(NewJFrame)中的字符串arraylist当我用j.mot在另一个类I-e中调用它时,它会给我一个空的arraylist。到底是什么问题?在哪里使用motif
或number
?什么是j.mot
或只是mot
?motif=new arraylist();
将使传递的arraylistmotif
成为arraylist的新实例,因此,由于它是新的,所以它是空的。我没有使用motif或number。Mot是另一个类(NewJFrame)中的字符串arraylist。当我在另一个类中用j.Mot调用它时,它会给我空的arraylist。