gpt4 book ai didi

java - 管理具有多个字段的类

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:25 24 4
gpt4 key购买 nike

我有一个类如下:

public class Foo {
private double A;
private double B;
...
private double K;
}

它应该包含 11 个紧密绑定(bind)的参数 A-K,它描述了地球轨道(一种坐标)中的一个点的运动。也就是说,我的意思是它们不能分成子类或其他有意义的部分,因为它们都有相同的目的和意义。所有这些参数都应该在构造函数中一起实例化,这样另一个类就可以使用 Foo 和这 11 个字段进行必要的计算。有人给我评论说构造函数中的参数数量太多。

有没有另一种方法来初始化 Foo 对象而不使用巨大的构造函数,一种映射?希望我说得足够清楚,如果不够清楚,我会提供更多详细信息。

最佳答案

你可以使用 varargs double 作为构造函数的参数并检查其大小以确保它是预期的。

类似于:

public class Foo {
private double A;
private double B;
...
private double K;

public Foo(double... coordinates) {
if (coordinates == null || coordinates.length != 11) {
throw new IllegalArgumentException("Unexpected size of coordinates");
}
this.A = coordinates[0];
this.B = coordinates[1];
...
this.K = coordinates[10];
}
...
}

这样,您在构造函数中只定义了一个参数,但为了简单起见,您仍然可以提供 11 值,如下所示:

Foo foo = new Foo(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0);

您仍然可以将其作为 doublearray 提供,如下所示:

Foo foo = new Foo(new double[]{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0});

关于java - 管理具有多个字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40422715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com