如何阻止IntelliJ自动生成public可见性类?设置项无效求助
解决IntelliJ 2018.1 EAP中Java默认可见性设置失效的问题
嘿,我之前也碰到过一模一样的情况!你说的Settings -> Code Style -> Java -> Default Visibility复选框只对方法(可能还有构造器)生效,这其实是2018.1 EAP这个预览版本的已知局限——当时这个功能还没开发完善,只覆盖了方法和构造器,像字段、内部类这类成员根本没适配到这个设置。
给你几个实际能用的解决思路:
- 单独配置字段的默认可见性:如果要给字段统一设置修饰符,别在Default Visibility里死磕了。可以去
Settings -> Editor -> Inspections -> Java -> Declaration redundancy下面找对应规则(比如「Field can be private」),开启后用快速修复(Alt+Enter)就能批量调整现有字段;要是想生成新字段时自动带修饰符,去Code Style -> Java -> Wrapping and Braces里调整字段的生成模板就行。 - 升级到稳定版:EAP本来就是测试用的版本,bug和功能不全很正常,直接升级到2018.1正式版或者更高版本,这个问题就修好了——后续版本的Default Visibility会覆盖字段、方法、构造器等所有成员类型,设置完就能全局生效。
- 自定义代码模板兜底:要是暂时不想升级,就去
Settings -> Editor -> File and Code Templates里修改Java相关的模板,比如把字段模板改成:
这样新建字段时就自动给你加上private ${TYPE} ${NAME};private修饰符了。
对了,当时这个版本的选项描述也没明确说明只针对方法,确实挺误导人的,后续版本的文档和功能逻辑都做了优化。
内容的提问来源于stack exchange,提问作者minizibi
相关产品推荐
相关产品推荐

