【问题标题】:Java: Method that returns either String or intJava:返回 String 或 int 的方法
【发布时间】:2017-08-25 20:29:18
【问题描述】:

我正在编写的一个小程序的一部分:

String maxs = "";
int maxi = 0;

在这一部分,我定义了两个变量为intString

public Class(String max){
   try {
           this.maxi = Integer.parseInt(max);
       }catch (Exception e){
           this.maxs = max;
       }
}

我认为这样我可以定义两个变量之一,如果字符串没有解析为 int,它将被保存为普通字符串。

现在我需要检查我需要返回的内容:

private TypeOfReturn getMax(){
    if(this.maxi == 0){
        // return maxs (return String)
    } else if (this.maxs.equals("")) {
        // return maxi (return int)
    } else return null;
}

问题是,如何填补方法getMax()的缺失部分?

在 Java 中甚至可能吗?

【问题讨论】:

  • TypeOfReturn 可以是Object
  • this.maxi = Integer.parseInt(max);最大值来自哪里?
  • 这是学校作业吗?或者在您的程序中还有其他目的吗?如果这不是特定的任务,可能还有许多其他更好的方法。
  • @mustafacil 对象做得很好。

标签: java string methods int


【解决方案1】:

使用 Object 而不是 TypeOfReturn 您可以将 TypeoOfReturn 更改为 Object,然后返回相应的类型。

【讨论】:

    【解决方案2】:

    另一种快速找出字符串是否为数字的方法,这是程序的主要部分,是使用 java 8 中的 lambda 表达式,如下所示:

    String max = "123";
    boolean isNumber = max.chars().allMatch(Character::isDigit);
    System.out.println(isNumber);
    

    这会给你输出

    true
    

    【讨论】:

      【解决方案3】:

      将您的 TypeOfReturn 设为 String 对象类型并将 maxi 转换为 String 并在 else if 条件下返回该 String。

      注意:不能在同一方法中同时返回 int 和 String。

      【讨论】:

      • 我将 TypeOfReturn 更改为 Object。它确实奏效了。还是谢谢
      猜你喜欢
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2013-10-16
      相关资源
      最近更新 更多