У меня есть следующие две строки:
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