我正在阅读其他人的代码并阅读这段代码:
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()后在{}之间初始化变量吗?你还可以做更多的事情,比如覆盖或定义新方法吗?为什么你必须在每次初始化之间加上{}?