湖面群日常·传统头衔二
如果某人因为idea2022以前的版本,在正常使用Refractor(重构)功能的改名时候,把proxy路径改错了,就会获得pXX的头衔。p表示“proxy”,XX表示是第几个来问的。
详细地说一下这个错误如何修正,以及产生的原理。


对比可以看到,Reference里有两个字符串常量的值不同,而且差的很多。
Reference在哪?那当然实在src\main\java\com\作者名\模组ID\util里的那个同名文件。
正确的proxy值为:
错误的只剩最后一个字段了。按照上面的格式重新填写一遍就可以修正这个错误。当然,记得把作者名和模组ID换成你对应的内容,别直接把这几个汉字都复制进去了。
如果你不想记住具体的格式的话,去下载一份干净的全新IDF也能看到正确格式。

那么,为什么会有如此多的人前赴后继地遇到这个错误呢?是因为他们操作和我的视频不一致吗?不是,恰恰是因为他们的操作完全一致。

IDEA安装之后,这个选项默认是打上对勾的,但是我早就处于个人原因把这个勾给去掉了。具体的原因是早在当年我看某人的eclipse教程时,教程作者说不去掉这个勾会很奇怪,当时我也没多想,觉得主要是操作起来是否方便的问题,我就也给去掉了。后来等我换了IDEA,我依然延续了这个习惯。
这个勾是干嘛的呢?如果去掉,上图的resources和assets,会如上地展示为一父一子两个文件夹结构。如果勾上,则仅显示为一个文件夹图标,名为resources.assets。是的,它只有显示方式的区别,不应该有实际影响。所以我根本想不到时因为这个。
等我录视频的时候,用的是我电脑上已经安装好的一套环境,此时勾早去掉了,我也没多想,就一步步继续。结果,答疑群有人前赴后继地犯一模一样的错误,令我百思不得其解。有一天,我在新的电脑上测试的时候,也遇到了此问题,但那时候我还不知道原因。
后来,我和Zeker测试证明,这个bug是IDEA本身所存在的,而且存在了非常久,如果这个对勾不去掉,就会导致重命名异常。直到Zeker亲自去反馈了,IDEA的团队才发现并修复了这个bug,此时的IDEA版本已经从2019变为了2022,bug延续了至少三年。
车祸现场传送门:
https://youtrack.jetbrains.com/issue/IDEA-289261/Package-strings-would-be-renamed-incorrectly-when-renaming-the-package-name
看到这个你还要怀疑吗?
难以置信吧,居然是IDEA这个IDE的bug,而且是初学者碰到的。我要是初学者,我也很难相信在这么基本的功能里,编辑器居然会有bug。所以后来我想了想,教程视频就留着这个缺陷吧,让人意识到IDEA确实不是完美的,也挺好。