有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有界原语

有没有像java或C++中的有界图元?我想要的是一个变量,除了它有一个用户可设置的最小值和最大值之外,它的行为就像一个浮点或双精度

举个例子,如果我把一个浮点变量设置为0到100之间,我可以试着把它设置为任何一个数字,并且通常使用它的方式和我使用原语的方式一样,只是当分配给它的值大于允许的最大值时,它会假设最大值,当它小于最小值时,它将假定为最小值。我希望能够对它进行基本运算,比如加法、乘法和减法——特别是使用我将在类似的正态变量上使用的运算符

这些东西存在于某个图书馆里吗


共 (2) 个答案

  1. # 1 楼答案

    没有这样的建筑。此外,Java不允许运算符重载,因此您永远无法编写以下内容:

    myBoundedInt i = 13;
    

    而是:

    myBoundedInt i = new myBoundedInt(13);
    //...
    i.setValue(42);
    

    据我所知,Dlang确实为类提供了内置断言,以确保在对象的整个生命周期内满足某些条件。也许你想调查一下

  2. # 2 楼答案

    你可以设计这样的类(C++)。基本设计如下:-

    class Bound
    {
    private:
      const int min = 10;
      const int max = 100;
      int var;
    public:
      Bound( int x )
      {
        if ( x > max )
           var = max;
        else if ( x < min )
           var = min;
        else
           var = x;
      }
    
      Bound& operator == ( int x )
      {
        // On same line as constructor 
      }
    };
    

    您可以将其转换为模板以支持其他数据类型