相信很多人和窝一样,经常会做一些数组的初始化工作,也肯定会涉及到集合类

假如窝现在要初始化一个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

1234321

我们需要在初始化时 加上静态声明:static 2321112 这样就好了,然后看看赋值进去的HashMap键值对形式: 12312


医不自医,人不渡己