Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap返回方法_Java_Android_Hashmap - Fatal编程技术网

Java HashMap返回方法

Java HashMap返回方法,java,android,hashmap,Java,Android,Hashmap,我在一个类中有一个方法,它初始化一个HashMap并在其中放置一些键和值,然后该方法返回HashMap。如何检索返回的HashMap public Map<String, String> getSensorValue(String sensorName) { registerSensor(sensorName); sensorValues.put("x","25"); sensorValues.put("y","26"); sensorValues.p

我在一个类中有一个方法,它初始化一个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;
}
使我的android应用程序崩溃。
关键是以某种方式重新返回HashMap。

您不应该复制该映射。只需尝试使用返回的引用:

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

您的方法需要返回一个
映射。在您发布的代码中,
Map
sensorValues从未初始化

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;
}
公共映射getSensorValue(字符串sensorName){ Map sensorValues=new HashMap(); 注册传感器(传感器名称); 传感器值。放置(“x”、“25”); 传感器值。输入(“y”、“26”); 传感器值。放置(“z”,“27”); 返回值; }
HashMap sensValues=newhashmap(); Set mapSet=(Set)sensValues.entrySet()

迭代器mapIterator=mapSet.Iterator()


几乎和Rich在他的回答中所说的一样,但是您的方法返回一个
Map
,它不能转换为
HashMap
。试试这个

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

或者,也可以更改getSensorValue方法,使其返回一个
HashMap

,也可以尝试通过引用传递一个路径

 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");

   }
void main(){
public static HashMap sensValues=new HashMap();
AllSensors sensVal=新的AllSensors();
sensVal.setSensorValue(sensValues,“方向”);
String something=sensValues.get(“x”);
}
public void设置传感器值(映射传感器值、字符串传感器名称){
注册传感器(传感器名称);
传感器值。放置(“x”、“25”);
传感器值。输入(“y”、“26”);
传感器值。放置(“z”,“27”);
}

您是否检查了logcat?发布您的异常(您可以在eclipse中的logcat输出中找到它)
            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);
            }
Map<String, String> map = sensVal.getSensorValue("...");
 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");

   }