geo*_*wa4 13 java syntactic-sugar
我今天遇到了这段代码,我不知道它是如何工作的.我知道如何制作匿名类,但我习惯于看到一个方法签名,而不仅仅是一对大括号.这些大括号之间的代码是否放入静态块?它会进入构造函数吗?还是完全不同的东西?
conext.checking(new Expectations() {
{ // <- what does this pair of braces do?
oneOf(alarm).getAttackAlarm(null);
}
});
Run Code Online (Sandbox Code Playgroud)
Rev*_*nzo 18
这是一个实例初始化,与创建的对象的上下文中调用的代码.
这相当于
Expectations exp = new Expectations();
exp.oneOf(alarm).getAttackAlarm(null);
conext.checking(exp)
Run Code Online (Sandbox Code Playgroud)
写这篇文章的人可能会认为他不是通过声明一个变量(不是真的)或者它是更清晰的代码(我不同意)来提高效率.
这些初始化程序像这样有用的主要位置是实例化地图,即:
Map map = new HashMap() {{
put("key1", "value1");
put("key2", "value2");
}};
Run Code Online (Sandbox Code Playgroud)
我认为实际上更具可读性.
| 归档时间: |
|
| 查看次数: |
6075 次 |
| 最近记录: |