当前位置: 首页 > 知识库问答 >
问题:

如何将对象添加到方法中的arraylist

罗昊明
2023-03-14

我想编写一个名为addNewPhone(Phone newPhone)的方法,将一个Phone添加到一个电话数组列表中;

电话类别:

    public class Phone {
        private int id;
        private String brand;
        private String model;
        private int cameraResolution;
        
    public Phone(int id, String brand, String model, int cameraResolution) {
        this.id=id;
        this.brand=brand;
        this.model=model;
        this.cameraResolution= cameraResolution;
    }
    
        public void showDetails() {
            System.out.println("id "+ this.id);
            System.out.println("Marka to "+ this.brand);
            System.out.println("Model to "+ this.model);
            System.out.println("Rozdzielczosc aparatu to " + this.cameraResolution);    
            
        }
        
        @Override
        public String toString() {
            return "Brand: " + this.brand + ", Model: " + this.model + ", Camera Resolution: " + this.cameraResolution + ", Id: " + this.id;
        }

车间类别:

import java.util.ArrayList;

public class Shop {

    private String name;
    private ArrayList<Phone> phones;
    private ArrayList<Tv> tvs;
    
    public Shop(String name, ArrayList<Phone> phones, ArrayList<Tv> tvs ) {
        this.name=name;
        this.phones=phones;
        this.tvs=tvs;
    }
    
    public ArrayList<Phone> addNewPhone(Phone newPhone) {
        return phones.add(this.newPhone); // this doesnt work
    }
    
}

主要类:

import java.util.ArrayList;
import java.util.Arrays;

public class Main {

    
    public static void main(String[] args) {
        Phone galaxy= new Phone(1, "Samsung","galaxy",12);
        Phone lumia= new Phone(2, "Nokia","lumia",13);
        Phone pixel= new Phone(3, "Google","pixel",14);

    
    Phone[] phones = new Phone[3];  
    phones[0]= galaxy;
    phones[1]= lumia;
    phones[2]= pixel;
    
    for (Phone phone: phones){
        phone.showDetails();
    }
    
    System.out.println(lumia.toString());
    
    Client client1= new Client(1, "Jan", "Kowalski", null);
    Client client2= new Client(1, "Magda", "Nowak", null);
    
    
    
    
    }

}

我知道我需要返回ArrayList,并且我需要在这个方法中接收Phone type对象,然后它应该返回ArrayList和一个新的phones,但我不知道为什么它不起作用。

Eclipse显示我符合的方法:“newPhone无法解析或未归档”。

共有1个答案

慕兴平
2023-03-14

您必须解决addNewPhone方法中的问题:

可能不想添加类Shop的字段newPhones(因为您没有该字段),而是添加该名称的方法参数。

并且没有一个数组列表。add重载返回列表本身。由于我没有看到addNewPhone方法的任何调用,我无法真正判断它,但如果您真的需要返回该列表,我会三思而后行

我会这样写:

java prettyprint-override">public addNewPhone(Phone newPhone) {
    phones.add(newPhone);
}

如果您需要返回电话列表,我将始终只使用列表

 类似资料:
  • 问题内容: 我想向中添加一个对象,但是每次我向具有3个属性的新对象添加时,都会出现错误。 在这里,我正在尝试创建其对象并将其传递给的类。 问题答案: 创建对象时需要使用运算符 要不然 并且您的构造函数不应包含。否则它将成为您班上的一个方法。

  • 这里有两个类,查询语句和Stackov。arraylist用于存储查询语句类的对象。但是最近添加的对象覆盖了前一个对象。如何添加对象以使它们不被覆盖? QuerySentence.java Stackov.java

  • 问题内容: 如何将对象添加到数组(使用javascript或jquery)?例如,此代码有什么问题? 我想使用此代码在function1数组中保存许多对象,并调用function2在数组中使用该对象。 如何将对象保存在数组中? 如何将对象放入数组并将其保存到变量? 问题答案: 使用Array.push()将任何东西放入数组。 有关数组的更多信息 一次添加多个项目 将项目添加到数组的开头 将一个数组

  • 问题内容: 这是我的对象文字: 我如何添加字段与对象? 问题答案: 有两种向对象添加新 属性的 方法: 使用点表示法: 使用方括号表示法: 当您知道属性名称时,将使用第一种形式。动态确定属性名称时,使用第二种形式。像这个例子: 甲 真实 JavaScript数组可使用任一构造: 数组文字符号: 数组构造器符号:

  • 我想用不同的ID将学生添加到studentList中。我无法在for循环中创建学生,因为创建一个学生需要太长的时间。我发现有一个克隆方法,但学生对象有许多字段(其中大多数引用另一个对象)。有什么想法吗?

  • 问题内容: 我有一个特定的类C的arraylist。 C类具有两个属性,即。 现在,当我将C类型的对象添加到ArrayList myList时,我想检查列表中是否已经存在对象,且其str1和str2的值与该对象的参数值(str1和str2)相匹配我要补充。 有什么有效的方法可以执行此操作,而不必每次都遍历完整列表并检查参数之间是否匹配? 问题答案: 您需要重写C类中的方法。 例如 然后,可以调用m