Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 ArrayList不会存储来自用户输入的实例_Java_Arraylist_Java.util.scanner - Fatal编程技术网

Java ArrayList不会存储来自用户输入的实例

Java ArrayList不会存储来自用户输入的实例,java,arraylist,java.util.scanner,Java,Arraylist,Java.util.scanner,我正在尝试使用用户输入向ArrayList添加元素。问题是,当我尝试添加某个内容并要求列出它时,它不会显示在列表中 我认为这是read方法的问题,但我不确定它是否有任何问题。另一件事是,添加元素的方法不在循环中,我尝试使用循环,但仍然不起作用。 有一个具有构造函数的电影类,该构造函数具有标题、年份、类型、价格和toString方法的参数 预期结果:添加电影后,应列出添加的电影。 实际结果:add方法要求输入,但当我使用list方法时,它没有列出我添加的内容 下面是完整的和类,了解更多上下文 ne

我正在尝试使用用户输入向ArrayList添加元素。问题是,当我尝试添加某个内容并要求列出它时,它不会显示在列表中

我认为这是read方法的问题,但我不确定它是否有任何问题。另一件事是,添加元素的方法不在循环中,我尝试使用循环,但仍然不起作用。 有一个具有构造函数的电影类,该构造函数具有标题、年份、类型、价格和toString方法的参数

预期结果:添加电影后,应列出添加的电影。 实际结果:add方法要求输入,但当我使用list方法时,它没有列出我添加的内容

下面是完整的和类,了解更多上下文

new Catalogue().addMovie();
每次要添加电影时,您都在创建一个新目录,而且您从未引用过它

相反,请将所有电影添加到同一目录:

每次要添加电影时,您都在创建一个新目录,而且您从未引用过它

相反,请将所有电影添加到同一目录:


这是因为“new”关键字。您需要在此处使用单例“目录”对象

class Kiosk {
       private static Catalogue catalogue;

       public Catalogue getCatalogue() {
          if(Objects.isNull(catalogue)){
               catalogue = new Catalogue();
          }
          return catalogue; //will return singleton catalogue object
       }

       private void addMovie() {
          getCatalogue().addMovie();
       }

       private void listMovie() {
          getCatalogue().listMovie();
       }
}

这是因为“new”关键字。您需要在此处使用单例“目录”对象

class Kiosk {
       private static Catalogue catalogue;

       public Catalogue getCatalogue() {
          if(Objects.isNull(catalogue)){
               catalogue = new Catalogue();
          }
          return catalogue; //will return singleton catalogue object
       }

       private void addMovie() {
          getCatalogue().addMovie();
       }

       private void listMovie() {
          getCatalogue().listMovie();
       }
}

在信息亭里,你们必须保留你们的目录的一个实例。 我不知道您计划在哪里创建目录实例,因此添加了2个构造函数:

public class Kiosk {
    private Catalogue cat;

    public Kiosk() {
       this(new Catalogue());
    }
    public Kiosk(Catalogue catalogue) {
        this.cat=catalogue;
    }
    private void addMovie() {
        cat.addMovie();
    }

    private void listMovie() {
        cat.listMovie();
    }
}

在信息亭里,你们必须保留你们的目录的一个实例。 我不知道您计划在哪里创建目录实例,因此添加了2个构造函数:

public class Kiosk {
    private Catalogue cat;

    public Kiosk() {
       this(new Catalogue());
    }
    public Kiosk(Catalogue catalogue) {
        this.cat=catalogue;
    }
    private void addMovie() {
        cat.addMovie();
    }

    private void listMovie() {
        cat.listMovie();
    }
}

moviesAvailable变量在哪里定义?这是目录的一个字段,你必须意识到你的目录类有两个不同的实例,这意味着它们都有一个不同的状态你列出了一个新目录中的方法-你应该列出你之前添加到的同一目录中的电影。你的moviesAvailable变量定义在哪里?这是一个目录字段,你必须意识到你的目录类有两个不同的实例,这意味着它们都有不同的状态你列出了一个新目录中的方法-你应该列出你之前添加到的同一目录中的电影。我试过了,但我的代码也有基于文本的菜单,该菜单调用addMovie和listMovie。我已将完整的类代码添加到原始帖子中,以了解更多上下文。@TDizzle Replace new catalog.addMovie;使用此.catalog.addMovie;,listMovie也一样。在您的公共信息亭中,添加此。catalog=新目录;我试过了,但是我的代码也有基于文本的菜单,菜单调用addMovie和listMovie。我已将完整的类代码添加到原始帖子中,以了解更多上下文。@TDizzle Replace new catalog.addMovie;使用此.catalog.addMovie;,listMovie也一样。在您的公共信息亭中,添加此。catalog=新目录;