まず、プリミティブだけでなく、すべての変数がJavaで値によって渡されます。オブジェクトが変更可能であるというだけです。それを理解することが重要です。例えば:
public void addHour(Date date) {
date.setTime(date.getTime() + 3600 * 1000);
}
日付は値で渡されますが、Date
変更可能であるため変更できますが、次のようにしてください。
public void addHour(Date date) {
date = new Date(date.getTime() + 3600 * 1000);
}
日付は変更されません。なんで?日付は参照ですが、値によって渡されるためです。
第二に、これらのダブルスは何らかの形で互いに関連していますか?その場合、次のようなこの関係を説明するクラスでそれらをラップします。
public class Coordinate {
private final double x;
private final double y;
public Coordinate(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() { return x; }
public double getY() { return y; }
}