【问题标题】:Is it possible to rename a non-`final` variable to a `final` name style or the other way around in Eclipse?是否可以在 Eclipse 中将非`final` 变量重命名为`final` 名称样式或其他方式?
【发布时间】:2017-01-08 15:27:52
【问题描述】:

在 Java 中,非final 变量对单词的每个第一个字母使用大写的命名约定:myInteger
final 变量使用所有大写字母和下划线来分隔单词:@ 987654324@.

在 Eclipse 中,可以使用 Alt+Shift+R 重命名变量,这会处理所有引用。我的问题是:有没有办法在final 和非final 样式之间轻松重命名变量。否则,我需要或多或少地重新输入整个名称。

【问题讨论】:

  • 假设有一种方法,你将如何改变你实际使用变量的地方?
  • @MarounMaroun 我没有改变地点,只是名称和参考。这是一个常规的重命名,就像你打错字并试图修复它一样。
  • 重构是你最好的选择。
  • 大写样式通常只用于static final
  • @MarounMaroun 整个问题是关于重构-> 重命名。我正在寻找一种更容易而不是重新输入的选项。

标签: java eclipse refactoring naming-conventions


【解决方案1】:

如果我正确理解了您的问题,这就是您所期望的:一种自动更改用于变量的名称的编码样式的方法(我故意跳过了 final 这个词,因为 final意味着它的值不能改变,因此不是变量)。也就是说,MY_INTEGER 到 myInteger,反之亦然。如果这是正确的,那么我认为答案在 Eclipse 中是 no

【讨论】:

  • 是的,这就是我正在寻找的功能。例如,如果您对类名使用小写字母,Eclipse 会发出警告,并会为您提供更正。我以为字段会有类似的功能,但显然没有。
  • 这里有一个好消息!我只是碰巧遇到了这种情况。我只是想将private static final Ignite IGNITE = ... 更改为private static Ignite ignite = ...。我删除了关键字final,突出显示名称“IGNITE”并按CTRL-空格键得到ignite反之亦然
  • 这是部分好消息,以防您还没有尝试过。我打算完成它,但我的 5 分钟编辑评论的限制已经结束。这是我打算添加的全文:“这是一个部分好消息!我恰好遇到这种情况。我想将private static final Ignite IGNITE = ...更改为private static Ignite ignite = ...。我删除了关键字final,突出显示了名称@ 987654328@ & 按 CTRL-Space 得到ignite反之亦然。当然,这仅适用于 Class 及其实例的名称除了大小写之外都相同的情况。"跨度>
  • 啊,我一定看过未完成的评论。 CTRL + SPACE 是常规的内容辅助。您是对的,它确实考虑了 static final 修饰符。如果如您所说,它不仅限于班级名称,那就太好了。我会将这个“发现”整合到您的答案中。
【解决方案2】:

您可以使用 IDE 的“重命名”重构功能来更改变量名称。您不能更改 Java 中名称的“样式”,因为那不是 Java 概念。您更改的是变量的名称。

此外,您不要对final 变量使用大写加下划线名称,而是将它们用于常量变量,或者通过扩展,final 对不可变对象的引用。 final 对可变对象的引用使用带有首字母小写字母的驼峰式大小写。并非所有final 变量都是常量。

【讨论】:

    猜你喜欢
    • 2010-10-19
    • 2019-12-27
    • 1970-01-01
    • 2014-11-26
    • 2020-07-04
    • 2021-01-12
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多