HashMap返回方法

sec*_*ret 6 java android 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;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我从另一个类调用此方法:

public static HashMap<String, String> sensValues = new HashMap<String, String>();

AllSensors sensVal = new AllSensors();
sensValues.putAll(sensVal.getSensorValue("orientation"));
String something = sensValues.get("x");
Run Code Online (Sandbox Code Playgroud)

但它不会以这种方式起作用

sensValues.putAll(sensVal.getSensorValue("orientation"));
Run Code Online (Sandbox Code Playgroud)

使我的Android应用程序崩溃.重点是以某种方式回溯返回的HashMap.

ric*_*ich 12

您不必复制地图.只需尝试使用返回的引用:

Map<String, String> map = sensVal.getSensorValue("...");
Run Code Online (Sandbox Code Playgroud)


Kev*_*sox 6

你的方法需要返回一个Map<String,String>.在您发布的代码中,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;
}
Run Code Online (Sandbox Code Playgroud)