0

我收到以下警告:

使用 Double.valueOf(Double.valueOf(jsonurl.getString("latitude")) * 1E6) 代替 Android Lint 问题 使用 Double.valueOf(Double.valueOf(jsonurl.getString("longitude")) * 1E6) 代替

问题说明:你不应该直接调用包装类的构造函数,如newInteger(42)。而是调用“valueOf”工厂方法,如Integer.valueOf((42))。这通常会使用更少的内存.... ......

JSONObject e = arr.getJSONObject(i);
    jsonurl = (JSONObject) e.get("data");   


int jsonlng = (new Double(Double.valueOf(jsonurl.getString("longitude")) * 1E6).intValue());

newdata[i] = new GeoPoint(jsonlat,jsonlng);
4

2 回答 2

0

也许:

int jsonlng = (int) (Double.valueOf(jsonurl.getString("longitude")) * 1E6);

“(new Double(...)).intValue()”不是必需的。

于 2012-11-30T21:35:08.497 回答
0
(new Double(Double.valueOf(jsonurl.getString("longitude")) * 1E6).intValue());    

会变成

(Double.valueOf(Double.valueOf(jsonurl.getString("longitude")) * 1E6).intValue());    

没有警告。

于 2012-11-30T22:44:04.570 回答