前端之家收集整理的这篇文章主要介绍了
Java语法糖,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我今天碰到这个
代码块,我不知道它是如何工作的.我知道如何做匿名类,但我习惯于看到一个
方法签名,而不只是一对大括号.这些大括号之间的
代码是否放入静态块?它是否进入构造
函数?还是别的东西?
conext.checking(new Expectations() {
{ // <- what does this pair of braces do?
oneOf(alarm).getAttackAlarm(null);
}
});
它是一个实例初始化器,它通过创建的对象的上下文
调用代码.
这相当于
Expectations exp = new Expectations();
exp.oneOf(alarm).getAttackAlarm(null);
conext.checking(exp)
谁写的可能认为他没有声明一个变量(不是真的),或者它是更干净的代码(我不同意)是更有效率.
这些初始化器的主要用处是实例化映射,即:
Map map = new HashMap() {{
put("key1","value1");
put("key2","value2");
}};
我认为其实是稍微更可读.
原文链接:https://www.f2er.com/java/125225.html