Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 传递到另一个类时为空arraylist_Java_Arraylist - Fatal编程技术网

Java 传递到另一个类时为空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

我在一个类中创建了一个arraylist,但当我将它传递给另一个类时,它是空的。一个类中有元素,但另一个类中为空

这是我在一个类中的代码

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();
将使传递的arraylist
motif
成为arraylist的新实例,因此,由于它是新的,所以它是空的。我没有使用motif或number。Mot是另一个类(NewJFrame)中的字符串arraylist当我用j.mot在另一个类I-e中调用它时,它会给我一个空的arraylist。到底是什么问题?在哪里使用
motif
number
?什么是
j.mot
或只是
mot
motif=new arraylist();
将使传递的arraylist
motif
成为arraylist的新实例,因此,由于它是新的,所以它是空的。我没有使用motif或number。Mot是另一个类(NewJFrame)中的字符串arraylist。当我在另一个类中用j.Mot调用它时,它会给我空的arraylist。