首页 Java Java语法糖

Java语法糖

我今天碰到这个代码块,我不知道它是如何工作的.我知道如何做匿名类,但我习惯于看到一个方法签名,而不只是一对大括号.这些大括号之间的代码是否放入静态块?它是否进入构造函数?还是别的东西? conext.checking(new Expectations() { { // – what does this p

我今天碰到这个代码块,我不知道它是如何工作的.我知道如何做匿名类,但我习惯于看到一个方法签名,而不只是一对大括号.这些大括号之间的代码是否放入静态块?它是否进入构造函数?还是别的东西?

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.0532zz.com/html/kaifa/java/20200801/7606.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部