Метод возврата HashMap

У меня есть метод в классе, который инициализирует HashMap и помещает в него некоторые ключи и значения, тогда метод возвращает HashMap. Как получить возвращаемый HashMap?

public Map<String, String> getSensorValue(String sensorName) { registerSensor(sensorName); sensorValues.put("x","25"); sensorValues.put("y","26"); sensorValues.put("z","27"); return sensorValues; } 

И здесь я называю этот метод из другого класса:

 public static HashMap<String, String> sensValues = new HashMap<String, String>(); AllSensors sensVal = new AllSensors(); sensValues.putAll(sensVal.getSensorValue("orientation")); String something = sensValues.get("x"); 

Но это не работает таким образом

 sensValues.putAll(sensVal.getSensorValue("orientation")); 

Делает сбой приложения для Android. Дело в том, чтобы как-то вернуть HashMap.

Solutions Collecting From Web of "Метод возврата HashMap"

Вам не нужно копировать карту. Просто попробуйте использовать возвращаемую ссылку:

 Map<String, String> map = sensVal.getSensorValue("..."); 

Почти так, как сказал Рич в своем ответе, но ваш метод возвращает Map которую нельзя отнести на HashMap . Попробуй это

 Map<String, String> map = sensVal.getSensorValue("..."); 

Или, альтернативно, измените метод getSensorValue, чтобы он возвращал HashMap

Ваш метод должен вернуть Map<String,String> . В коде, который вы опубликовали, параметры sensorValues Map никогда не инициализируются.

 public Map<String, String> getSensorValue(String sensorName) { Map<String,String> sensorValues = new HashMap<String,String>(); registerSensor(sensorName); sensorValues.put("x","25"); sensorValues.put("y","26"); sensorValues.put("z","27"); return sensorValues; } 

HashMap sensValues ​​= new HashMap (); Set mapSet = (Set) sensValues.entrySet ();

Итератор mapIterator = mapSet.iterator ();

  while (mapIterator.hasNext()) { Map.Entry mapEntry = (Map.Entry) mapIterator.next(); String keyValue = (String) mapEntry.getKey(); String value = (String) mapEntry.getValue(); System.out.println("Key : " + keyValue + "= Value : " + value); } 

Также вы можете попробовать пройти по ссылке aproach,

  void main(){ public static HashMap<String, String> sensValues = new HashMap<String, String>(); AllSensors sensVal = new AllSensors(); sensVal.setSensorValue(sensValues ,"orientation"); String something = sensValues.get("x"); } public void setSensorValue(Map<String, String> sensorValues, String sensorName) { registerSensor(sensorName); sensorValues.put("x","25"); sensorValues.put("y","26"); sensorValues.put("z","27"); }