Java 在一个数组中创建两个对象

Java 在一个数组中创建两个对象,java,arrays,Java,Arrays,通常我的代码更长,但我试图向您解释我的问题: public List<Person> person = Collections.singletonList(new Person()); 然后输出如下所示: "person": [{"name": "Paris","surname": "Hilton"}] 但是,我想创建两个人的名字和姓氏,如下所示: "person&qu

通常我的代码更长,但我试图向您解释我的问题:

 public List<Person> person = Collections.singletonList(new Person());
然后输出如下所示:

"person": [{"name": "Paris","surname": "Hilton"}]
但是,我想创建两个人的名字和姓氏,如下所示:

"person": [{"name": "Paris","surname": "Hilton"},{"name": "Cameron","value": "Diaz"}]
怎么可能呢

  • 在Person类中添加一个构造函数,该构造函数接受两个参数
    Person(字符串名称、字符串姓氏)
  • 使用此构造函数初始化Person对象
    新人(“A”、“B”)或新人(“X”、“Y”)
  • 现在将创建的对象添加到列表(或任何集合)(而不是singletonList)
  • singletonList
    只能存储单个对象
  • 如果确实需要singletonList,则需要将两个(或任意数量的)对象包装到另一个列表中,并创建包含列表的singletonList
  • 请检查您是否正在查找
    不可修改列表
  • singletonList
    unmodifiableList
    不能保证Person对象的不变性
  • 如果您需要在
    Person
    上执行不可变行为,则将
    name
    姓氏
    声明为最终字段,并使用输入值在构造函数中分配它们
  • 对于任何可视打印要求,请覆盖
    Person
    类的
    toString
    方法
  • 所以这个班看起来像

    班级人员{
    私有最终字符串名;
    私人姓氏;
    公众人物(字符串名称、字符串姓氏){
    this.name=名称;
    this.姓氏=姓氏;
    }
    公共字符串getName(){
    返回此.name;
    }
    公共字符串getNames(){
    返回此。姓氏;
    }
    @凌驾
    公共字符串toString(){
    返回“name:+this.name+”,姓氏:+this.姓氏;
    }
    }
    

    或者,可以使用默认值创建对象,并且可以使用setter设置值(或者如果可以访问,甚至可以直接访问字段)。还是希望有一个参数化的构造函数。

    Hi!请你的问题包括所有相关的代码,a.你认为“Cameron Diaz”来自哪里?@ScottHunter我认为OP可能会对对象的工作方式和
    集合感到困惑。singletonList(…)
    does.OP似乎对许多事情感到困惑。
    "person": [{"name": "Paris","surname": "Hilton"},{"name": "Cameron","value": "Diaz"}]