【问题标题】:assigning a value in an arraylist to a int in another class将 arraylist 中的值分配给另一个类中的 int
【发布时间】:2013-11-29 18:17:39
【问题描述】:

我是java新手,目前正在为学生记录系统编写java代码。 我做了一个课程,要求用户输入学生完成的年份,如下所示

import java.util.ArrayList;
import java.util.Scanner;

public class StudentYear 
{
    public void StudentYear()
    {
        ArrayList<Integer> studentYear = new ArrayList<Integer>();
        Scanner sc = new Scanner(System.in); 
        System.out.println("Please enter the year the student has most recently completed: ");
        studentYear.add(sc.nextInt());
        System.out.println(studentYear);
        }
    }

我现在想在一个新类中定义一个新的 int,int year =(学生在上面的代码中输入到 arraylist 的年份),所以我可以在其他地方使用他们的年份值。 我将如何在另一个类中使用 arraylist 'studentYear' 的第一个存储值并将其分配给'int year'?

希望这很清楚, 提前致谢

【问题讨论】:

  • 如果你只接受一个值,为什么要使用ArrayList?但是在任何情况下,您都可以定义其他类的构造函数以将 int 作为参数,或者您可以在其他类中使用 setter 方法。

标签: java class arraylist


【解决方案1】:

我建议您只使用public static 变量来存储用户输入的年份。现在您可以在整个应用程序中使用此值。在这种情况下存储年份不需要使用ArrayList

static修饰符用于所有对象共有的变量

Understanding Instance and Class Members

【讨论】:

    【解决方案2】:

    如下编辑您的班级StudentYear -

    • studentYear 赋值为实例变量。

    • 创建一个getter method,以防您的实例不公开

      public class StudentYear 
      {
              private ArrayList<Integer> studentYear;
              public void StudentYear()
              {
                      studentYear = new ArrayList<Integer>();
                      Scanner sc = new Scanner(System.in); 
                      System.out.println("Please enter the year the student has most recently completed: ");
                      studentYear.add(sc.nextInt());
                      System.out.println(studentYear);
              }
              public ArrayList getStudentYear()
              {
                      return studentYear;
              }
      }
      

    在另一个类中,使用StudentYear类的getter方法即可

    StudentYear obj=new StudentYear();
    ArrayList<Integer> studentYear=obj.getStudentYear();
    int year=studentYear.get(0);
    

    【讨论】:

    • 感谢您的帮助,我已经实施了这些更改,现在我在 Results.Results(Results.java:11) 处遇到线程“main”java.lang.NullPointerException 中的错误异常Main.main(Main.java:21)
    • @user3050340 你应该为你的 Main.java 提供一些代码。那只有我能理解问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2018-05-29
    • 2021-05-06
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    相关资源
    最近更新 更多