我的問題是在整個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
不一定。如果你不希望這種方法經常被調用(例如,只有用戶點擊一個按鈕的頻率),那麼它不會有什麼不同。如果你的代碼調用了數百萬次,你可以考慮將該數組作爲一個字段來減少分配。 –