GWT中的双括号有多大危害?

Mik*_*liy 5 java syntax gwt

我倾向于在GWT中使用(甚至过度使用)双括号对象初始化.对我来说,它看起来更具可读性和更具声明性.

new FastMap<Object>(){{
    put("Value", 12);
    put("Unit", "Kg");
}};
Run Code Online (Sandbox Code Playgroud)

在今天之前我不知道这个语法不只是实例化对象,而是为它创建AnonymousInnerClass.现在我担心GWT如何处理它们.

  1. 这种语法如何影响执行的性能?
  2. 这种语法如何影响编译大小?
  3. 还有其他坏事吗?

我的应用程序中有数千个这样的初始化.

Mik*_*liy 5

我的发现.测试代码.我正在创建包含4个地图的单个列表,每个地图有21个项目 我正在测量所有生成的JavaScript文件的大小.结果:

空(只是空代码以确保呈现GWT支持代码):

  • PRETTY = 533 KB(546 602字节)
  • OBF = 212 KB(217 601字节)
  • 数量new= 167

没有双括号的代码:

  • PRETTY = 557 KB(570 682字节)
  • OBF = 222 KB(227 663字节)
  • 数量new= 171

双括号相同的代码:

  • PRETTY = 567 KB(581 004字节)
  • OBF = 228 KB(234 089字节)
  • 数量new= 177

我认为结果非常明显.