在java中返回类型[]双重问题

时间:2012-07-28 11:34:10

标签: java arrays

此代码有错误,返回类型有错误。

    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 []

4 个答案:

答案 0 :(得分: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 };
}

答案 1 :(得分:2)

使用:

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

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

答案 2 :(得分:2)

你问:“那么,它们之间有什么区别?虽然java支持声明data_type [] var_name以及data_type var_name []。”

仔细比较:

  

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

  

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

AS

  

[] data_type var_name //错误

  

data_type [] var_name //正确

,而

  

data_type var_name [] //也有效

与任何一个函数声明(egads @ Jon)

没有任何共同之处

这有帮助吗?

答案 3 :(得分:0)

方法的签名应该是这样的:

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

或者像这样:

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

此外,return语句应如下所示:

return new double[]{latitude, longitude};