Безопасность типов: выражение типа Map[] требует непроверяемого преобразования, чтобы соответствовать Map<String,Object>JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Безопасность типов: выражение типа Map[] требует непроверяемого преобразования, чтобы соответствовать Map<String,Object>

Сообщение Anonymous »

У меня есть следующие две строки:

Map[] IEXDivMap = null;

IEXDivMap = new Map[IEXJsonArray.length()];


и получите предупреждение:

The expression of type Map[] needs unchecked conversion to conform to Map[]


Есть ли способ это исправить?

ОБНОВЛЕНИЕ:

В комментариях меня спросили, зачем нам вообще нужен массив Map. Мы получаем серию хэш-карт и помещаем каждую из них в массив карт. Вот код:

@SuppressWarnings("unchecked")
public static Map[] getDiv(String ticker) {
Map[] IEXDivMap = null;
try{
String url = "https://api.IEXtrading.com/1.0/stock/" + ticker + "/dividends/1y";
URL obj = new URL(url);

HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if(responseCode == 404){
System.out.println("Ticker " + ticker + " NOT FOUND in getDiv()!");
return IEXDivMap;
}else if (responseCode != 200){
System.out.println("IEX Printing All Response Header for URL: " + obj.toString() + "\n");
Map map = con.getHeaderFields();
for(Map.Entry entry : map.entrySet()) {
System.out.println("IEX " + entry.getKey() + " : " + entry.getValue());
}
}

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

JSONArray IEXJsonArray = new JSONArray(response.toString());
IEXDivMap = new Map[IEXJsonArray.length()];

for (int i = 0; i < IEXJsonArray.length(); i++) {
IEXDivMap = new HashMap();
JSONObject IEXJsonObject = IEXJsonArray.getJSONObject(i);

IEXDivMap.put("exDate",IEXJsonObject.getString("exDate"));
IEXDivMap.put("amount",IEXJsonObject.getString("amount"));

//System.out.println(IEXDivMap);
System.out.println(IEXDivMap.get("exDate") + " 0 " + IEXDivMap.get("amount"));
}
}catch(Exception e){
System.out.println("FATAL ERROR: Something went wrong in getDiv " + e.getMessage());
System.exit(0);
}
return IEXDivMap;
}


Подробнее здесь: https://stackoverflow.com/questions/539 ... to-conform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»