Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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:将对象的每个实例的名称添加到列表中_Java_Arrays_List_Object - Fatal编程技术网

Java:将对象的每个实例的名称添加到列表中

Java:将对象的每个实例的名称添加到列表中,java,arrays,list,object,Java,Arrays,List,Object,正如标题所说,我想将每个新创建的人名对象保存在一个列表中: 这是到目前为止我的代码 package javaapplication4; import java.util.*; public class Person { private String namePerson; static List personList = new ArrayList(); { personList.add(getPersonName()); } public Person(String na

正如标题所说,我想将每个新创建的人名对象保存在一个列表中:

这是到目前为止我的代码

package javaapplication4;
import java.util.*;

public class Person {
private String namePerson;  
static List personList = new ArrayList();

{ 
    personList.add(getPersonName());
} 

public Person(String namePerson){
       this.namePerson = namePerson;
}

public void setPersonName(String namePerson){
    this.namePerson = namePerson;
}

 public String getPersonName(){
    return namePerson;
}

public void setPersonList(List personList){
      this.personList= personList;
}

  public static List getPersonList(){
      return personList;
  }
每次我创建person对象时,它都会作为“null”点添加到列表中(当我使用println时)

如何将其更改为新对象的名称
Person

上面的代码称为实例初始值设定项。它是在构造函数执行之前执行的。此时,
getPersonName
将返回null,因为您尚未设置
namePerson
的值

将其移动到构造函数中

public Person(String namePerson){
   this.namePerson = namePerson;
   this.personList.add(namePerson);
}

旁注:使用原始类型是一种不好的做法。您使用的是原始列表。一定是

List<String> personList = new ArrayList<>();
List personList=new ArrayList();

上面的代码称为实例初始值设定项。它是在构造函数执行之前执行的。此时,
getPersonName
将返回null,因为您尚未设置
namePerson
的值

将其移动到构造函数中

public Person(String namePerson){
   this.namePerson = namePerson;
   this.personList.add(namePerson);
}

旁注:使用原始类型是一种不好的做法。您使用的是原始列表。一定是

List<String> personList = new ArrayList<>();
List personList=new ArrayList();

正如@user7所指出的,您在错误的位置将名称添加到列表中。您应该做的是,在创建person对象时,即在构造函数内部,将person的名称添加到列表中。将构造函数替换为以下内容:

public Person(String namePerson){
  this.namePerson = namePerson;
  personList.add(namePerson);
}

正如@user7所指出的,您在错误的位置将名称添加到列表中。您应该做的是,在创建person对象时,即在构造函数内部,将person的名称添加到列表中。将构造函数替换为以下内容:

public Person(String namePerson){
  this.namePerson = namePerson;
  personList.add(namePerson);
}

您可以对Person类进行以下更改:

import java.util.*;

public class Person {
private String namePerson;
static List<String> personList = new ArrayList<>();

public Person(String namePerson) {
    this.namePerson = namePerson;
    personList.add(this.namePerson);
}

public void setPersonName(String namePerson) {
    this.namePerson = namePerson;
}

public String getPersonName() {
    return namePerson;
}

public void setPersonList(List personList) {
    this.personList = personList;
}

public static List getPersonList() {
    return personList;
}
}
import java.util.*;
公共阶层人士{
私人字符串姓名;
静态列表personList=新的ArrayList();
公众人物(字符串名称){
this.namePerson=namePerson;
personList.add(this.namePerson);
}
public void setPersonName(字符串名称Person){
this.namePerson=namePerson;
}
公共字符串getPersonName(){
返回姓名者;
}
public void setPersonList(列表personList){
this.personList=personList;
}
公共静态列表getPersonList(){
回归人格;
}
}

您可以对人员类进行以下更改:

import java.util.*;

public class Person {
private String namePerson;
static List<String> personList = new ArrayList<>();

public Person(String namePerson) {
    this.namePerson = namePerson;
    personList.add(this.namePerson);
}

public void setPersonName(String namePerson) {
    this.namePerson = namePerson;
}

public String getPersonName() {
    return namePerson;
}

public void setPersonList(List personList) {
    this.personList = personList;
}

public static List getPersonList() {
    return personList;
}
}
import java.util.*;
公共阶层人士{
私人字符串姓名;
静态列表personList=新的ArrayList();
公众人物(字符串名称){
this.namePerson=namePerson;
personList.add(this.namePerson);
}
public void setPersonName(字符串名称Person){
this.namePerson=namePerson;
}
公共字符串getPersonName(){
返回姓名者;
}
public void setPersonList(列表personList){
this.personList=personList;
}
公共静态列表getPersonList(){
回归人格;
}
}

我本来要去User7所在的地方,但没有那么快。当一个特定的Person对象超出范围时,我们是否有必要从PersonList中删除这个人的名字?如果是这样的话,我想还有一点工作要做。请注意你收到的编译器警告。我本来想去User7的地方,但没有那么快。当一个特定的Person对象超出范围时,我们是否有必要从PersonList中删除这个人的名字?如果是这样的话,我认为还有一点工作要做。请注意您收到的编译器警告。