【问题标题】:Returning multiple integers in one method在一种方法中返回多个整数
【发布时间】:2015-12-21 12:36:43
【问题描述】:
// set date of birth
    public void setDOB(int day, int month, int year)
    {
        this.day = day;
        this.month = month;
        this.year = year;
    }

    // get date of birth
    public int getDOB()
    {
        return day;
        return month;
        return year;
    }

为什么当我尝试返回这三个值时会出错?我认为我可以通过不为日、月和年编写每个 set/get 方法来节省一些空间。

另外,我似乎只收到了return month; 的错误,这意味着它是 eclipse 突出显示的唯一一个告诉我删除它。

【问题讨论】:

    标签: java class methods


    【解决方案1】:

    您不能同时使用 return 语句返回多个值。当第一个 return 语句执行时,其余两个语句变得不可访问。

    可能的解决方案

    1) 返回一个数组

    2) 返回一个 int 的列表

    3) 或者构造一个对象并返回它。

    当您编写 getDOB() 时,它应该是一个 Date 对象,而不是一个 int。看来您需要在那里返回一个 Date 对象。

    【讨论】:

      【解决方案2】:

      你不能。第一个 return 语句将结束方法并将控制权返回给调用者。永远无法获得进一步的回报。您只能从任何方法返回单个值,并且您将返回类型指定为 int。

      【讨论】:

      • 所以我将不得不为每个方法创建 set/get 方法?
      • @Onikouzou 是的,您必须为每个方法创建单独的设置/获取方法。如果您使用的是 eclipse,this 可以帮助您
      • @Onikouzou 老实说,在这种特殊情况下,我建议您使用现有的 Date 类而不是自己滚动。 Google for JodaTime。
      【解决方案3】:

      为什么我尝试返回这三个值时会出错?

      返回类型int 表示您的方法将仅return int 并且一旦执行了return 语句,您的其他代码在return 语句之后就变为,因为在return number; 之后控制直接转到方法的调用者

      在您的情况下,您应该返回 Date,因为这完全与出生时的 Date 有关。

      此外,您可以使用三种不同的 getter 方法(在您的情况下不推荐)。

      public int getDay(){ return day;}
      public int getMonth(){ return month;}
      public int getYear(){ return year;}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-29
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-19
        • 1970-01-01
        • 2021-06-03
        相关资源
        最近更新 更多