非常简单和愚蠢的问题,但只是为了确定。 假设我有一堂记录课
public record Pair(int x, int y) {}
我想用 x <= y always. If somebody passes x > y 创建对,然后构造函数应该交换这个变量。 使用类很容易实现:
public class Pair {
private final int x;
private final int y;
public Pair(int x, int y) {
this.x = Math.min(x, y);
this.y = Math.max(x, y);
}
}
我知道我可以声明静态工厂方法之类的,但我只想知道是否可以在记录中达到上述效果。不同的示例只是展示了如何验证输入变量,但我无法找到是否可以调整输入变量。
public record Point(int x, int y) {
public Point {
if (x > y) {
int min = y;
y = x;
x = min;
}
}
}