Java,将未声明的参数数量传递给数组

Java, passing not declared amount of arguments to array

我正在编写一个项目来处理向量上的操作,这就是我遇到的问题:我创建了超类,在其中声明了场坐标,并且我有 3 个不同的 类 用于不同的维度 Vector3D, Vector5D,VectorND。 最后我遇到了一个问题。这是超类:

abstract class Vector implements sample
{       
    int[] coordinates;  
     public Vector (int[] coordinates)
     {
         this.coordinates=coordinates;
     }

这里以 Vector3D 为例:

class Vector3D extends Vector
{

public Vector3D(int n1,int n2,int n3) 
{
       super(new int[]{n1,n2,n3});
   }

这里是 VectorND:

class VectorND extends Vector
{
    public VectorND(int...n) 
    {       
            super(new int[] {});
    }

我想知道如何将未声明数量的变量传递给构造函数,所以当我在 main 中调用此方法时,我可以这样做:VectorND vec = new VectorND(1,2,3...n );?感谢您的帮助!

你可以直接使用n:

public VectorND(int...n) 
{       
    super(n);
}

请记住,Java 中的可变参数列表(大部分)是用于传递数组的语法糖。

你知道你可以在这种情况下直接使用 n 因为你不知道其他任何东西都引用了那个数组,因为它是为调用 VectorND 构造函数而创建的。 (如果你不知道,复制数组会更安全。)