当我在 IntelliJ IDEA 中打开“结构”窗口时,任何属性都无法访问保存删除...选项:
但是,相同的函数可以在字段中使用:
当从字段中使用时,它无论如何都会删除整个“属性”,即字段及其 getter 和 setter 方法。
为什么我无法在整个属性上访问完全相同的功能?并且该功能在菜单中并且呈灰色显示,那么在什么条件下可以使用该功能?
我创建了一个问题 https://youtrack.jetbrains.com/issue/IDEA-170415 ,所以我想知道 JetBrains 的答案是什么。
最佳答案
诸如重构之类的操作可以在代码结构中克拉所在位置的“上下文”中使用。
因此,如果您单击某个字段的代码,您将看到某些重构。或者,如果您将克拉放在类名称上,您将看到其他重构。
至于这与项目结构的关系(alt - 7) - 您会注意到,如果您单击项目结构中的某个项目,然后按 f4(跳转到源),它将导航到中的确切位置与该项目相关的源代码窗口。
我经常使用 f4 从项目结构导航到代码,您会注意到可用的重构是相同的(结构 View 和代码 Pane 之间)。
现在,有趣的是(我以前从未尝试过这一点),如果您在项目结构中启用“属性”(带有 P)并将光标定位在属性上,请按 f4 - 它不会 导航至代码。
我怀疑java代码的“属性”和“PSI”结构之间没有链接(这又映射到代码 Pane 中的特定行)。也许这是 intellij 的一个疏忽,或者也许它就是这样的,因为属性确实可以代表 3 个不同的代码段(字段、getter 和 setter)。
对我来说,将属性与字段本身关联起来似乎是最合乎逻辑的,这样“跳转到源”就会导航到该字段(因此可以进行重构),但事实并非如此。
关于java - 为什么在 IntelliJ 的属性中无法访问 "Safe delete..."函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43040104/