Java类依赖于某些参数

时间:2016-12-29 00:00:36

标签: java class generics

是否可以创建" generic" Java中的类依赖于某些参数(而不是类型)?像这样:

 class RVector<int n>
 {
      double[] v = new double[n];

      public RVector<int n>(double[] d){
      //...
      }

      //...
 }

对于每个整数n,它将模拟具有n个分量的实数向量。 如果没有,Java中有类似的东西吗?

3 个答案:

答案 0 :(得分:3)

不完全是泛型,但您确定可以通过将n作为参数传递给构造函数来实现。

class RVector
{
    double[] v;

    public RVector(double[] d, int n) {
        this.v = new double[n];
        //...
    }
    //...
}

答案 1 :(得分:2)

Java的泛型与模板并不完全相同。因此,您无法在/Users/中添加值。它必须是一种类型。

一种解决方法是将<>传递给构造函数:

n

但是这样,你无法在编译时确保“类型安全”,更不用说你不能将public RVector(int n, double[] d) { ... } 的长度限制为double[]

另一种解决方法是创建多个矢量类:

n

答案 2 :(得分:0)

你不能使用泛型。

似乎是构造函数参数而不是每个实例或每个类都有一个返回向量大小的方法