【问题标题】:Turning public items into private items - Java, IntelliJ将公共项目变成私人项目 - Java、IntelliJ
【发布时间】:2016-03-19 13:59:16
【问题描述】:

我只是想知道是否有一种方法可以通过简单的按钮或其他东西将公共项目(字段、方法)设为私有

public Group wQ;
public Group wA1;
public Group wA2;
public Group wA3;
public Group wG1;
public Group wG2;
public Group wG3;
public Group wS1;
public Group wS2;
public Group wB1;
public Group wB2;

例如,一步将所有这些字段设为私有,而不用私有替换公共。顺便说一句,我使用 IntelliJ IDEA。

【问题讨论】:

  • 我确信有一种方法可以向下扩展光标,使您可以一次在多行上键入。尝试向下拖动中键(可能是它)。当然,另一种方法是查找/替换。
  • 是的,我使用了查找/替换方法,但它似乎效率很低

标签: java intellij-idea ide keyboard-shortcuts


【解决方案1】:

您要查找的函数称为封装字段

  1. 在要编辑的类中右键单击
  2. 选择重构
  3. 选择封装字段...
  4. 选中所有公共字段旁边的复选框
  5. 然后您可以配置为通过访问器提供设置/获取访问权限,或者仅使用下面的复选框获取访问权限。
  6. 选择重构

请注意,此方法会为您选择的所有字段生成 getter(如果您选择的话,还会生成 setter)。如果您不想要这些 getter,您可以选择其他选项之一或直接删除生成的 getter。似乎没有办法选择不创建 getter。


或者,您可以使用多行选择

  1. 将光标设置在第一个 public 关键字的末尾。
  2. 按住鼠标中键
  3. 将鼠标向下拖动到public 块的末尾。
  4. 使用退格键/键入新的private 关键字同时编辑行。

作为第三种方法,您可以使用查找和替换。它有一些不错的选项,让您可以很好地控制自己在做什么。

  1. 选择菜单编辑
  2. 选择查找
  3. 选择替换

  4. 选择带有public 字段的文本块。

  5. 选择RegexMatch CaseIn Selection
  6. 在上方字段中,输入^(\s*)public(.*)$
  7. 在下方字段中,输入$1private$2
  8. 现在将突出显示所有替换。检查它们是否正确。您可以使用上方文本框旁边的蓝色箭头逐步浏览它们。

  9. 选择全部替换

【讨论】:

  • 非常好的帖子,您可以提供更多可信度并在refactoring reference from martin fowler 上提供参考,它创造了这个术语并使其在当今的 IDE 中变得流行,这些 IDE 只是他提议的目录的自动实现最常见的重构。
  • 还有太多的人不知道自动化重构,出去宣传吧 ;)
  • 非常好的帖子,非常感谢您制作的所有动画。非常感谢!
【解决方案2】:

除了@RAnders00's answer,还有另一种方法可以让 IntelliJ 自动执行此操作而无需生成 setter/getter,同时还检查您是否会破坏代码:

右键单击类或包→分析→按名称运行检查→Declaration access can be weaker

IntelliJ 将在您的班级中搜索可能会根据使用情况降低可见度的成员。扫描后可以自动更新。

【讨论】:

    【解决方案3】:

    我会使用 CTRL+R 来查找“public”并将其替换为“private”。

    【讨论】:

    • 这种方法的问题是您最终可能会将一些公共方法设为私有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2015-08-02
    • 1970-01-01
    • 2017-12-07
    • 2016-02-08
    • 2021-11-20
    • 2020-10-10
    相关资源
    最近更新 更多