小提示,本文编写于 2,308 天前,最后编辑于 2,031 天前,某些信息可能有些出入,仅供参考。
相信很多人和窝一样,经常会做一些数组的初始化工作,也肯定会涉及到集合类
假如窝现在要初始化一个String类型的数组,可以很方便的使用如下代码:
String [] strs = {"hello","world"};
我们初始化一个HashMap时,大多数时候都是这样子的:
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "June");
map.put("age", 12);
分享一种优雅的初始化HashMap方式:
Map<String, Object> map = new HashMap<String, Object>() {
{
put("country", "China");
put("IronMan", "me");
}
};
这边有必要说清楚两个大括号表示的是啥意思,是一种什么语法呢?
其实,外层的一组“{}”表示的是一个匿名内部类,内层的一对“{}”表示的是实例初始化块,然后这边还有一点需要明白,实例初始化块的代码在编译器编译过后,是放在类的构造函数里面的,并且是在原构造函数代码的前面。
我们要同一个类中调用的时候,会提示如下错误:
field 'sampleTypeMaps' cannot be referenced from a static context
我们需要在初始化时 加上静态声明:static
这样就好了,然后看看赋值进去的HashMap键值对形式: