我有一段很长的代码,doubles为我计算两个值(),我在几个地方使用这段代码 - 坚持DRY原则我应该将这些代码重构为一个不错的单元可测试方法.但是我不能让它返回两个双打,双打是原始的,所以不能通过值传递和操纵.我能想到的最干净的方法就是让这个方法返回一个double[].谁能想到更好的方法?
谢谢
cle*_*tus 12
首先,所有变量都是通过Java中的值传递的,而不仅仅是基元.只是对象可以变化.理解这一点很重要.例如:
public void addHour(Date date) {
date.setTime(date.getTime() + 3600 * 1000);
}
Run Code Online (Sandbox Code Playgroud)
日期按值传递但是Date可变,因此可以修改但尝试执行此操作:
public void addHour(Date date) {
date = new Date(date.getTime() + 3600 * 1000);
}
Run Code Online (Sandbox Code Playgroud)
它不会改变日期.为什么?因为date是引用,但是按值传递.
其次,这些双打是否以某种方式相互关联?如果是这样将它们包装在类中而不是描述这种关系,如:
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; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |