如何配置Android Studio仅将匿名类替换为语句式Lambda?
配置Android Studio将匿名类直接转为语句式Lambda
问题场景
我在更新旧Android代码以适配Java新特性时,需要批量将匿名类替换为Lambda表达式。例如原代码:
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { tappedButton(); } });
使用Android Studio的「Replace with lambda」自动修复后,会生成表达式形式的Lambda:
builder.setPositiveButton(R.string.ok, (dialog, id) -> tappedButton());
但我更倾向于使用带大括号的语句式Lambda格式:
builder.setPositiveButton(R.string.ok, (dialog, id) -> { tappedButton(); });
我需要调整Android Studio的配置,让触发「Replace with lambda」修复时直接生成语句式Lambda,而非表达式Lambda。已了解如何禁用语句式转表达式的检查,现在需要的是替换匿名类时直接生成语句式的设置方法。
配置步骤
- 打开Android Studio设置:Windows/Linux路径为
File → Settings,Mac路径为Android Studio → Settings - 依次导航到 Editor → Code Style → Java
- 切换至 Code Generation 标签页
- 在 Lambda expressions 板块中,找到 Body style 选项
- 将默认的「Expression body」修改为「Block body」
- 点击「Apply」和「OK」保存配置
完成以上设置后,使用「Replace with lambda」自动修复匿名类时,就会直接生成带大括号的语句式Lambda了。
内容的提问来源于stack exchange,提问作者Kenny Wyland
相关产品推荐
相关产品推荐

