【问题标题】:Restricting allowable values of float argument限制浮点参数的允许值
【发布时间】:2015-04-18 14:30:56
【问题描述】:

我是 Java 新手,我正在开发用于管理日程安排的程序。

是否可以限制 float 的值,即函数的参数?

由于这是一个时间表,因此小时数的值必须介于 024 之间。

【问题讨论】:

  • 定义限制。这很容易做到,但你想发生什么?抛出异常还是别的什么?
  • 我知道如何在函数内部执行此操作,也就是说,使用 if 语句检查它是否在这些值之间被理解,如果它没有返回错误并结束函数。这就是我到目前为止的处理方式。我想知道我是否可以限制函数原型@DominikAngerer
  • 除了指定其类型之外,您不能进一步限制参数。您可能希望创建/使用 Time 类并将此类的实例作为参数传递,以防止“非法”参数作为参数传递。
  • 我建议您使用Time 类或Date 来处理日期/时间。
  • 有效的小时值是否只是整数值?

标签: java types arguments


【解决方案1】:

一个简单的异常处理示例是:

     class ValidateDouble {

        public static void main(String[] args) {

        // Your initial value
        double value = 0;
        System.out.println("Your initial value is: " + value);

        // Not valid argument, should print 0 as returned from method
        value = inputDouble(-1);
        System.out.println("After entering -1, your value is: " + value);

        // Not valid argument, should print 0 as returned from method
        value = inputDouble(-1.5);
        System.out.println("After entering -1.5, your value is: " + value);

        // Not valid argument, should print 0 as returned from method
        value = inputDouble(25);
        System.out.println("After entering 25, your value is: " + value);

        // Valid argument, should print the returned argument value
        value = inputDouble(2);
        System.out.println("\nAfter entering 2, your value is: " + value);

        // Valid argument, should print the returned argument value 
        value = inputDouble(2.54);
        System.out.println("\nAfter entering 2.54, your value is: " + value);

    }

    private static double inputDouble (double number) {

        // Program will try to execute this
        try {

            // If number is out of range, throw exception if not, return the argument.
            if (number < 0 || number > 24) {
                throw new IllegalArgumentException("\nNot a valid argument...");
            } else {
                return number;
            }

        } catch (IllegalArgumentException exception) {

            // Print message thrown in the exception and return 0.
            System.out.println(exception.getMessage());
            return 0;
        }

    }

}

我知道这可能不是您想要的,我已经根据您的问题发布了一个示例,即如何验证方法参数。有很多方法可以验证您的用户输入,但只要您询问验证方法参数,我认为这可以帮助您到达那里。干杯。

您将无法在方法原型中执行此操作。

【讨论】:

  • 谢谢。我想如果这不可能,那就不可能了。很抱歉这么晚才回复。 :)
猜你喜欢
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
相关资源
最近更新 更多