我正在编写一个项目来处理 vector 上的操作,而这正是我陷入困境的地方:我创建了父类(super class),在其中声明了场坐标,并且我有 3 个不同的类用于不同的维度 Vector3D、Vector5D、VectorND。 最后我遇到了一个问题。这是父类(super class):
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
构造函数而创建的. (如果你不知道,复制数组会更安全。)
关于Java,将未声明的参数量传递给数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52726559/