【问题标题】:Can't add data to hash map declared within non-activity class无法将数据添加到非活动类中声明的哈希映射
【发布时间】:2014-07-20 11:38:01
【问题描述】:

我在非活动类中声明了一个哈希映射,如下所示:

public class Wifi {
    HashMap<String, String> AccessPoints = new HashMap<String, String>();
    AccessPoints.put("AP1", "first_ap");

    public ArrayList<Integer> scanWifi(Context context) {
            // code here
    }
}

然后我尝试向哈希映射添加数据,但在 Android Studio 中出现“无法解析符号”错误。

当我将AccessPoints.put("AP1", "first_ap"); 放在类中的一个函数中时,它似乎可以工作。

【问题讨论】:

  • 放更多代码,比如你在哪里声明地图并访问它?似乎与范围相关的问题。
  • @EldarMensutov 消息是“无法解析符号'put'”

标签: java android hashmap android-studio


【解决方案1】:
AccessPoints.put("AP1", "first_ap");

调用方法应该在以下块中完成:

  • 一种方法。
  • 一个静态初始化器。
  • 一个实例初始化器。
  • 构造函数。

【讨论】:

    【解决方案2】:

    Java 中的变量应该使用一个小的起始字母。它可能会将 AccessPoint 视为一个新类,尽管它只是已声明变量的名称。 尝试更改名称中的第一个字母,这可能会有所帮助。

    HashMap<String, String> accessPoints = new HashMap<String, String>();
        accessPoints.put("api","first");
    

    如果没有帮助,则可能是范围问题,因此请为您的问题添加更多上下文。

    【讨论】:

      【解决方案3】:

      这张地图可能是某个类别的成员。您没有指定它的定义位置。 如果您想从另一个类访问它,您应该让其他类可以访问它(通过将其公开),并通过创建它的对象的引用来访问它。

      例如:

      class X {
         ...
         public HashMap<String, String> accessPoints = new HashMap<String, String>();
         ...
      }
      
      class Y {
      
      ...
         X xObj = new X();
         xObj.accessPoints.put ("fff","yyy");
      ...
      }
      

      当然,从面向对象的角度来看,将地图设为私有并通过方法从其他类访问它会更好。

      class X {
         ...
         private HashMap<String, String> accessPoints = new HashMap<String, String>();
         ...
         public void addAccessPoint (String key, String value) {
             accessPoints.put(key,value);
         }
      }
      
      class Y {
      
      ...
         X xObj = new X();
         xObj.addAccessPoint ("fff","yyy");
      ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-05
        • 1970-01-01
        • 2014-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        相关资源
        最近更新 更多