java 集合类 为什么不能直接定义成类的成员变量,然后调用其put方法

import java.util.*;
public class test {
static Map<String,String>map=new HashMap<String,String>();
map.put("niha","niai"); //这一行出现语法错误

public static void main(String[]ars){
//定义在函数体内部就可以编译通过
Map<String,String>map=new HashMap<String,String>();
map.put("niha","nian");
}
}

put();是map的一个方法,方法只能够在方法内部被调用。不能够在类里面直接调用的。
例外,如果你的变量声明成static了,那么也只能够在static的方法里面,或者用类名调用这个对象。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-29
map.put("niha","niai"); //这一行出现语法错误 ,原因是方法的调用,不能在类体中执行,需要在方法中或是静态块中执行。

你可以修改为
static{
map.put("niha","niai");

}
就可以执行了,加载类的时候,静态块就进行了初始化,会直接执行map.put();
第2个回答  2012-11-29
map.put("niha","niai");是语句 语句必须放在方法里
第3个回答  2012-11-29
java类的方法只能在方法内部调用
第4个回答  2012-11-29
方法调用不能出现在语句块外
相似回答