java - 是否可以创建具有最小和最大范围的浮点类型?

标签 java

我知道这可以在 Ada 中完成,但我是 Java 的新手,不知道我是否可以这样做。我想制作一个从 0 到 2pi 的 float 子类型的弧度。超出范围的值将被视为超出范围并通过约束错误。感谢您的帮助!

最佳答案

commons.lang.math.Range 只是指定范围约束。它不代表该范围内的值(我认为这是您想要的)。

您可以创建一个新类来保存值并强制执行约束。您自己的程序将传递此类的实例,从而获得类型安全(强制执行约束)。调用其他 API 时,您必须恢复为发送和接受常规 double 值。您可以在接受返回值之前再次检查约束。

public class Radian extends Number {

     private final double value;

     public Radian(double value){
          if (value < 0 || value >= 2 * PI)
               throw new IllegalArgumentException(value + " is out of range");
          this.value = value;
     }

     public double doubleValue(){
         return value;
     }

     // ... and other methods in the Number interface
     //   don't forget equals and hashCode and toString
}

关于java - 是否可以创建具有最小和最大范围的浮点类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4048349/

相关文章:

java - Spring RestTemplate反序列化xml为对象返回null

java - Spring 集成 Java DSL : specify custom deserializer

java - 帮助解决 java rmi 作业中的问题

java - 如何从 HTML 中的 Java 元素中检索元素

java - 在 Java 中将 String 转换为 Long 的正确方法

java - 零是 Android 中 ScheduledThreadPoolExecutor 的有效 corePoolSize 吗?

java - 使用 Spring Security,我如何使用 HTTP 方法(例如 GET、PUT、POST)来区分特定 URL 模式的安全性?

java - SimpleDateFormat 中的非法模式字符 'O'

java - 使用 Stripe API 进行客户对客户付款

java - JAXB:当我们有很多类型的 xmlMessage 时,如何在 xmlMessage 与其 Java 类之间进行映射以进行解码