3

我正在使用 openscript IDE,我收到一个错误“令牌语法错误,删除这些令牌”我的代码是

import java.util.Map;
public class HTMLObjectMap {

   HashMap<String, String> params = new HashMap<String, String>();
   params.put("test","test");
}
4

4 回答 4

7

该声明

params.put("test","test");

必须在您尚未定义的方法内。IE

public class HTMLObjectMap {

    HashMap<String, String> params = new HashMap<String, String>();
    public void method()
    {
        params.put("test","test");
    }
}

或者,您可能需要一个初始化程序,如

public class HTMLObjectMap {

    HashMap<String, String> params = new HashMap<String, String>();

    {
        params.put("test","test");
    }
}
于 2013-02-05T05:52:03.137 回答
1

您需要将初始化代码放入大括号中:

public class HTMLObjectMap {
    HashMap<String, String> params = new HashMap<String, String>();
    {
        params.put("test","test");
    }
}

或者如果你需要它是静态的:

public class HTMLObjectMap {
    static HashMap<String, String> params = new HashMap<String, String>();

    static
    {
        params.put("test","test");
    }
}
于 2013-02-05T05:55:25.793 回答
1

我认为您应该将您的地图设为私有,它不会破坏封装以及用于在外部访问和插入其值的 getter 和 setter 方法。

public class HTMLObjectMap {

   private HashMap<String, String> params = new HashMap<String, String>();
   {
       // initialize if required  
   }
   public void get(String key){
         params.get(key);
   }
   public String put(String key,String value){
         params.put(key,value);
   }
}
于 2013-02-05T05:59:57.160 回答
1

您必须初始化该类。java类只有变量和方法。在类中,您可以声明变量或定义方法,无论您想要做什么都意味着您必须定义方法。

public class HTMLObjectMap {
    HashMap<String, String> params = new HashMap<String, String>();
    // this is objects method.
    {
        params.put("test","test");
    }
    // this is your own method
    private void method1(){
        params.put("test1","test1");
    }
}
于 2013-02-05T06:03:28.870 回答