当前位置: 首页 > 后端技术 > Java

他妈的!!IntelliJIDEA居然偷偷改了代码,.

时间:2023-04-01 21:41:30 Java

问题来了,IDEA居然自动修改代码?明明我已经修改保存了,但是不管我怎么测试,都不行。后来查了一下,复现了一下,发现代码是IDEA自动改的。.如下动图所示:原来是class。方法,但我将其更改为实例。方法并调用它。每次保存,代码又还原了一遍,太诡异了。.这样我的实例对象不就没用了吗?并直接访问类的静态方法。.定位看到上图,stackmanager突然灵机一动,让我想起了之前分享的《IntelliJ IDEA 2021.2 发布,这次要干掉 FindBugs 了!》一文中的新功能:保存时的动作,即保存时可以进行代码优化操作,而不必去一一检查优化,保存的时候就可以了。更多IDEA教程可以关注公众号:Java技术栈,我分享了很多,关注后可以在菜单中阅读。设置如下图所示:我确实开启了各种保存操作,其中我勾选了一个自动清理和修复的选项。然后在Inspections菜单中:也打开了通过实例对象访问静态成员的警告,也就是说不允许/不推荐通过实例对象访问静态成员。所以,我猜测可能是保存时的清理动作触发了这个规则,然后自动优化了。所以,我先取消勾选:然后测试:现在通过实例对象访问静态方法,然后保存,实例对象就不再被类替换了,并且生效了,就是允许了通过instance.Static成员方式来调用。同时我也发现SpringBoot的startrun方法也提供了普通方法版本,只是传入args,所以不是静态调用。现在再次检查该选项:如图所示,它永远不会被类调用替换,因为它调用的是普通方法。总结一下IDEA的一个小优化,真是把我折腾了个遍,IDEA真的太聪明了,有时候给你优化,你可能不知道,这个真的很值得注意!!事实上,instance.static成员的访问形式在语法上是可以的,但不推荐。静态成员无疑是类级别的,自然需要通过类来调用。因此,我建议不要取消选中该选项。默认为符合正常规则。好了,这个疑惑已经解决了,现在我们可以继续愉快的写代码了。.其实IDEA也有开源社区版,付费的专业版也很容易申请到免费激活码。教程可以参考:http://www.javastack.cn/article/2020/intellij-idea-by-open-source-project/也可以关注公众号Java技术栈,回复:IDEA,阅读我分享的获取正版IDEA激活码的教程,很多粉丝反馈说很容易拿到,有兴趣的可以去申请,简直不能太容易。关注我,栈长后面会继续分享IDEA系列教程,带你玩转IDEA的两行!版权声明:本文为公众号《Java技术栈》原创作品。转载或引用本文内容请注明出处。版权侵权投诉将由您自行承担风险,我们保留追究其法律责任的权利。近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.20w程序员红包封面,快拿。..5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!