【问题标题】:Eclipse shortcut to generate simple assignment in constructor?在构造函数中生成简单赋值的 Eclipse 快捷方式?
【发布时间】:2016-01-26 21:17:31
【问题描述】:

有没有办法从构造函数的参数中生成简单的赋值?

发件人:

public class MyClass {

  public MyClass(String id, String name, String desc) {

  }

}

加上一些神奇的捷径,它会变成:

public class MyClass {

  public MyClass(String id, String name, String desc) {
    this.id = id;
    this.name = name;
    this.desc = desc;
  }

}

如果我们有生成这个的快捷方式就更好了(避免使用许多 'ctrl + 1' 来创建不存在的字段):

public class MyClass {
  private String id;
  private String name;
  private String desc;

  public MyClass(String id, String name, String desc) {
    this.id = id;
    this.name = name;
    this.desc = desc;
  }

}

更新

我找到了一种可以接受的方法来处理这个问题:

首先,我的典型用法:

我的带参数的构造函数通常是另一个类的 ctrl + 1 的输出。

例如,在我的代码中:

MyClass type = new MyClass("id", "name", "desc"); // the constructor doesnt exist yet

所以,我 ctrl + 1,创建构造函数,然后 tadaa,构造函数是 eclipse 创建的

现在,为了帮助我创建字段并从参数中为其分配值,我只需将光标放在构造函数参数上,ctrl + 1 --> 将参数分配给新字段 ,并对所有参数重复。

希望这会有所帮助!

【问题讨论】:

  • 我认为 eclipse 中没有任何可用的快捷方式。
  • 我也这么认为。这是当今程序员可以进行的为数不多的体育锻炼之一,不应该被淘汰。
  • 感谢您的更新,这正是我想要的。

标签: java eclipse


【解决方案1】:
public class MyClass {
  private String id;
  private String name;
  private String desc;
}

如果你键入这么多右键单击 -> 源 -> 使用字段生成构造函数

您还可以生成所有的 getter 和 setter。一旦默认情况下没有热键,我就为热键设置了这些。但他们需要检查字段,所以不是即时的。

【讨论】:

  • 这种方法最接近我的意图,谢谢!
  • 我找到了另一种更适合我需要的方法。请参阅原始问题中的更新部分。
【解决方案2】:

请看看它是否有效。

分配给本地:Ctrl+2, L

分配给字段:Ctrl+2, F

【讨论】:

    【解决方案3】:

    你可以试试:

    1. 转到Window->Preference->Java->Code Style->CodeTemplates

    2. 编辑构造函数模板以满足您的要求

    3. 编辑类模板并添加构造函数变量。

    然后,当您创建一个新类时,Eclipse 会自动将构造函数添加到您的代码中。

    【讨论】:

    • 但是我真的不需要构造函数的自动生成,因为 Eclipse 不知道我在构造函数中需要什么参数。但我更需要的是让eclipse根据我定义的构造函数参数为我生成赋值语句。
    • 我只是看看eclipse是如何工作的:你可以按alt+shift+s调用源菜单,然后选择generate constructor with field,然后你可以选择你要分配的字段。
    【解决方案4】:

    你可以按alt+shift+s+o

    会出现一个弹出窗口 - 单击 ok 并生成带有字段的类的构造函数。

    【讨论】:

      猜你喜欢
      • 2016-01-09
      • 1970-01-01
      • 2023-03-27
      • 2012-06-21
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      相关资源
      最近更新 更多