У меня есть следующие две строки:
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
Безопасность типов: выражение типа Map[] требует непроверяемого преобразования, чтобы соответствовать Map<String,Object> ⇐ JAVA
Программисты JAVA общаются здесь
1764915502
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[i] = new HashMap();
JSONObject IEXJsonObject = IEXJsonArray.getJSONObject(i);
IEXDivMap[i].put("exDate",IEXJsonObject.getString("exDate"));
IEXDivMap[i].put("amount",IEXJsonObject.getString("amount"));
//System.out.println(IEXDivMap[i]);
System.out.println(IEXDivMap[i].get("exDate") + " 0 " + IEXDivMap[i].get("amount"));
}
}catch(Exception e){
System.out.println("FATAL ERROR: Something went wrong in getDiv " + e.getMessage());
System.exit(0);
}
return IEXDivMap;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/53973126/type-safety-the-expression-of-type-map-needs-unchecked-conversion-to-conform[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия