2012-07-28 28 views
2

此代碼有錯誤,返回類型有錯誤。返回類型[] java中的雙重問題

public static []double convertLatLong(String lat, String lng) { 
     ........ 
    double latitude=....; 
    double longitude=....; 

    return (new []double{latitude,longitude}); 
    } 

但它正常工作與...

public static double[] convertLatLong(String lat, String lng) { 
     ........ 
    double latitude=....; 
    double longitude=....; 

    return (new double[]{latitude,longitude}); 
    } 

那麼,它們之間有什麼區別呢? 雖然java支持聲明data_type [] var_name以及data_type var_name []

+6

也許你應該寫'double []'而不是'[] double' ... – Baz 2012-07-28 11:34:59

+2

'[] data_type'在Java中無效。請參閱:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html它可以是'dataType []名稱'或'dataType名稱[]'。但我會強烈推薦第一個。 – Baz 2012-07-28 11:49:00

+0

對不起我的錯誤,問題是data_type [] var_name和data_type var_name []是在java中的vaild。 – 2012-07-28 11:56:59

回答

2

你問:「那麼,它們之間有什麼區別,而Java支持聲明DATA_TYPE? [] var_name以及data_type var_name []。「

仔細比較:

公共靜態[]雙convertLatLong(LAT的字符串,字符串LNG)//錯誤

公共[] convertLatLong靜態雙(String lat,String lng)//正確

AS

[] DATA_TYPE VAR_NAME //錯誤

DATA_TYPE [] VAR_NAME //正確

data_ty PE VAR_NAME [] //也有效

毫無共同之處與任何函數聲明(egads @喬恩)

是否幫助嗎?

+0

是它的偉大... – 2012-07-28 13:11:39

2

用途:

public static double[] convertLatLong(String lat, String lng) { 
    double latitude = ... 
    double longitude = ...; 

    return new double[] { latitude, longitude }; 
} 
0

的方法的簽名應該是這樣的:

public static double[] convertLatLong(String lat, String lng) 

或像這樣:

public static double convertLatLong(String lat, String lng)[] 

此外,return語句應該是這樣的:

return new double[]{latitude, longitude}; 
3

(引述問題編輯之前...)

而Java支持的聲明DATA_TYPE []以及[] DATA_TYPE。

不,它不。它在確實支持(可怕)在某些情況下將[]。例如,這兩個都是有效的,但討厭IMO:

double foo[]; // Ugly 

// Completely insane 
public double theGogglesTheyDoNothing()[] { 
    return new double[10]; 
} 

我從來沒有見過在實際代碼中使用後者 - 這是完全可怕。第一個偶爾會出現,但強烈不鼓勵。

[]double從來沒有據我所知。

的首選形式就是直接把方括號類型名稱後,讓你的代碼將是:

public static double[] convertLatLong(String lat, String lng) { 
    double latitude=....; 
    double longitude=....; 

    return new double[] { latitude, longitude }; 
}