覆盖默认 Java 记录构造函数中的变量分配[重复]

问题描述 投票:0回答:1

非常简单和愚蠢的问题,但只是为了确定。 假设我有一堂记录课

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);
  }
}

我知道我可以声明静态工厂方法之类的,但我只想知道是否可以在记录中达到上述效果。不同的示例只是展示了如何验证输入变量,但我无法找到是否可以调整输入变量。

java constructor record
1个回答
0
投票
public record Point(int x, int y) {
    public Point {
        if (x > y) {
            int min = y;
            y = x;
            x = min;
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.