Java Can';t向非活动类中声明的哈希映射添加数据
我在非活动类中声明了如下哈希映射:Java Can';t向非活动类中声明的哈希映射添加数据,java,android,hashmap,android-studio,Java,Android,Hashmap,Android Studio,我在非活动类中声明了如下哈希映射: public class Wifi { HashMap<String, String> AccessPoints = new HashMap<String, String>(); AccessPoints.put("AP1", "first_ap"); public ArrayList<Integer> scanWifi(Context context) { // code
public class Wifi {
HashMap<String, String> AccessPoints = new HashMap<String, String>();
AccessPoints.put("AP1", "first_ap");
public ArrayList<Integer> scanWifi(Context context) {
// code here
}
}
公共级Wifi{
HashMap AccessPoints=新HashMap();
访问点。放置(“AP1”、“第一个ap”);
公共阵列列表scanWifi(上下文){
//代码在这里
}
}
然后我尝试向哈希映射添加数据,但在Android Studio中出现了“无法解析符号”错误
当我放置
AccessPoints.put(“AP1”,“first_ap”)代码>在类中的函数中,它似乎可以工作 Java中的变量应该使用一个小的起始字母。它可以考虑Access一个新类,尽管它只是声明变量的名称。
尝试更改名称中的第一个字母,可能会有所帮助
HashMap<String, String> accessPoints = new HashMap<String, String>();
accessPoints.put("api","first");
HashMap accessPoints=newhashmap();
accessPoints.put(“api”、“第一”);
如果没有帮助,可能是范围问题,所以请为您的问题添加更多上下文
AccessPoints.put("AP1", "first_ap");
调用方法应在以下块中完成:
- 一种方法
- 静态初始值设定项
- 实例初始值设定项
- 构造器
此地图可能是某个类别的成员。您没有指定它的定义位置。
如果您想从另一个类访问它,您应该使其他类可以访问它(通过将其公开),并通过引用创建它的对象来访问它
例如:
class X {
...
public HashMap<String, String> accessPoints = new HashMap<String, String>();
...
}
class Y {
...
X xObj = new X();
xObj.accessPoints.put ("fff","yyy");
...
}
X类{
...
public HashMap accessPoints=new HashMap();
...
}
Y类{
...
X xObj=新的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");
...
}
X类{
...
private HashMap accessPoints=new HashMap();
...
public void addAccessPoint(字符串键、字符串值){
accessPoints.put(键、值);
}
}
Y类{
...
X xObj=新的X();
xObj.addAccessPoint(“fff”、“yyy”);
...
}
添加更多代码,例如您在哪里声明地图并访问它?似乎是与作用域相关的问题。@EldarMensutov消息是“无法解析符号'put'”