对象创建,变量初始化

时间:2018-03-11 10:24:18

标签: java

我正在阅读其他人的代码并阅读这段代码:

class Wrapper {
        UnaryOperator<String> f;
    }
    Wrapper w = new Wrapper() { // line 3
        {
            f = s -> s.length() <= 1 ? s : f.apply(s.substring(1)) + s.substring(0, 1);
        }
    };

因此,如果我理解正确,他会创建一个新的Wrapper objecet并且已经初始化其变量f。我不熟悉第4行的语法,我只知道来自匿名类的东西,但这不是一个。你能在创建一个新的Class()后在{}之间初始化变量吗?你还可以做更多的事情,比如覆盖或定义新方法吗?为什么你必须在每次初始化之间加上{}?

1 个答案:

答案 0 :(得分:0)

实例初始化块。阅读question

中的更多内容