【问题标题】:Getter-Setter method and Array List [closed]Getter-Setter 方法和数组列表
【发布时间】:2016-04-07 21:32:17
【问题描述】:

我有一个类 NewClass2 和一个带有 main 方法的类。基本上我想要的是我想在 ArrayList 中保存书名、发布日期、页数和 isbn 编号,然后打印信息。

public class NewClass2 {
    int pages;
    String released;
    String title;
    int isbn;



    public int getPages() {
        return pages;
    }

    public void setPages(int pages) {
        this.pages = pages;
    }

    public String getReleased() {
        return released;
    }

    public void setReleased(String released) {
        this.released = released;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getIsbn() {
        return isbn;
    }

    public void setIsbn(int isbn) {
        this.isbn = isbn;
    }

    public NewClass2(int pages, String released, String title, int isbn) {
        this.pages = pages;
        this.released = released;
        this.title = title;
        this.isbn = isbn;
    }

    public NewClass2() {
    }

    public void printInfo(){
        System.out.println("The book has "+pages+" pages and was released on "+released+" and is called "+title);
    }

}

还有主类:

    public class mainClass {
    public static void main(String[] args){
        ArrayList<NewClass2> listTest = new ArrayList<>( );
        listTest.add(new NewClass2( 200,"Book 1", "8.9.14",2222) );
        listTest.add(new NewClass2( 200,"Book 2", "1.2.04",5555) );
        listTest.add(new NewClass2( 200,"Book 3", "5.4.06",6666) );
        listTest.add(new NewClass2( 200,"Book 4", "7.4.13",7777) );
        listTest.add(new NewClass2( 200,"Book 5", "2.2.03",8888) );

        NewClass2 book = new NewClass2(listTest);

        book.printInfo();

    }
}

IDE 告诉我

NewClass2 book = new NewClass2(listTest);

错了,为什么?以及如何修复它??

【问题讨论】:

  • 看看你声明的类构造函数——然后看看你调用构造函数的方式——它们不匹配。
  • 有两个 NewClass2 构造函数。一个不带参数,另一个带一个 int、String、String 和 int:public NewClass2(int pages, String released, String title, int isbn)。您正在调用一个不存在的构造函数并且只传入一个字符串。那是行不通的。您要么必须调用不带参数的默认构造函数,要么传入 int、String、String 和 int。
  • 请注意,这一切都应该在您的 java 教科书或教程的构造函数部分中得到很好的解释。
  • 但是我不是在我的 ArrayList 中传递了一个 int、String、String、int 吗?
  • 怎么回事?只是一个友好的提示,您可能需要阅读此页面:The How-To-Ask Guide,这样您就可以始终确定确保您的问题易于回答且尽可能清晰。请务必包括您为解决遇到的问题所做的任何努力,以及尝试这些修复时发生的情况。也不要忘记您的显示代码和任何错误消息!

标签: java arraylist get set


【解决方案1】:

您的问题如下:

在“NewClass2”中你有

  1. int 页面的构造函数,String 已发布,String 标题和 int 伊斯本
  2. () {nothing} 的构造函数

要获取 ArrayList 的每一本书,您可以替换以下行

NewClass2 book = new NewClass2(listTest);
book.printInfo();

for (NewClass2 book : listTest){
    book.printInfo();
}

这将打印 ArrayList 中每本书的信息。

希望能帮到你。

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 2017-09-09
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多