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中删除这个人的名字?如果是这样的话,我认为还有一点工作要做。请注意您收到的编译器警告。