我的问题是在整个Android的的API了很多库调用索要results[]
参数传递到方法,例如:为什么Android API要求结果参数而不是返回方法?
public boolean isInProximity(double startLat, double startLongitude, float meters) {
float[] results = new float[3];
Location.distanceBetween(startLat, startLongitude, endLatitude, endLongitude, results);
return results[0] <= meters;
}
到Android的调用是Location.distanceBetween()
,它需要results[]
为什么他们不包括返回签名的方法?我假设它是某种内存或速度优化。我不确定背后的确切原因。
可能会让您灵活地将相同的对象(本例中为数组)传递给方法的许多调用,从而避免每次调用时都需要分配内存。 –
所以我认为我做错了'私人浮动[]结果=新的浮动[3];'@RobI – Hones
不一定。如果你不希望这种方法经常被调用(例如,只有用户点击一个按钮的频率),那么它不会有什么不同。如果你的代码调用了数百万次,你可以考虑将该数组作为一个字段来减少分配。 –