java中令牌上的Hashmap语法错误

java中令牌上的Hashmap语法错误,java,hashmap,Java,Hashmap,我正在使用openscript IDE,我得到一个错误“令牌上的语法错误,删除这些令牌” 我的代码是 import java.util.Map; public class HTMLObjectMap { HashMap<String, String> params = new HashMap<String, String>(); params.put("test","test"); } import java.util.Map; 公共类HTMLObject

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

import java.util.Map;
public class HTMLObjectMap {

   HashMap<String, String> params = new HashMap<String, String>();
   params.put("test","test");
}
import java.util.Map;
公共类HTMLObjectMap{
HashMap params=新的HashMap();
参数put(“测试”、“测试”);
}
声明

params.put("test","test");
必须位于尚未定义的方法内。即

public class HTMLObjectMap {

    HashMap<String, String> params = new HashMap<String, String>();
    public void method()
    {
        params.put("test","test");
    }
}
公共类HTMLObjectMap{
HashMap params=新的HashMap();
公开作废法()
{
参数put(“测试”、“测试”);
}
}
或者,您可能需要一个初始值设定项,如

public class HTMLObjectMap {

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

    {
        params.put("test","test");
    }
}
公共类HTMLObjectMap{
HashMap params=新的HashMap();
{
参数put(“测试”、“测试”);
}
}

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

public class HTMLObjectMap {
    HashMap<String, String> params = new HashMap<String, String>();
    {
        params.put("test","test");
    }
}
公共类HTMLObjectMap{
HashMap params=新的HashMap();
{
参数put(“测试”、“测试”);
}
}
或者,如果您需要静态:

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

    static
    {
        params.put("test","test");
    }
}
公共类HTMLObjectMap{
静态HashMap params=newhashmap();
静止的
{
参数put(“测试”、“测试”);
}
}

我认为应该将地图私有化,它不会破坏用于访问和插入其值的封装和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);
   }
}
公共类HTMLObjectMap{
private HashMap params=new HashMap();
{
//如果需要,初始化
}
公共void get(字符串键){
参数get(key);
}
公共字符串put(字符串键、字符串值){
参数put(键、值);
}
}

您必须初始化该类。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");
    }
}
公共类HTMLObjectMap{
HashMap params=新的HashMap();
//这是对象方法。
{
参数put(“测试”、“测试”);
}
//这是你自己的方法
私有void方法1(){
参数put(“test1”、“test1”);
}
}

在这种情况下,由于
参数
不是静态的,因此初始化程序块。谢谢,它工作了…谢谢它工作了。。。我需要使它静态,并在其他类中引用,我需要使用它的工作状态。。。我需要将其设置为静态,并在其他类中引用,我需要使用params.put(“tag1”,“link”);参数put(“tag2”,“按钮”);参数put(“tag3”、“单选按钮”);我需要让它静态映射并使用,还是我需要让clas静态在你的例子中它不是静态的,所以它不在我的例子中。添加了静态映射的示例。不,我正在使用带有设置值的Hashmap来初始化它。我需要添加键和值,我将在以后使用初始化程序块引用它们,甚至您可以在构造函数中插入它们。谢谢您,我理解我的错误。。。