52

我确实尝试过搜索这个,但老实说,实际搜索的术语正在逃避我。一个小代码片段,后面是问题。

Public class Person {

   String firstName;
   String lastName;

   public void setFirstName(String firstName) {
      this.firstName = firstName;
   }

   public String getFirstName() {
      return firstName;
   }
   ...
}

另一个使用此 person 对象的对象中,我希望能够扩展 Intellij 中的所有 setter 方法。

public class PersonAssembler { 
    public static Person assemblePerson(SomeOtherObject someOtherObject) {

    Person person = new Person;

    //intellj would provide this below.
    person.setFirstName();
    person.setLastName();
    //end of what intellj provides.

    return person;
}

这甚至可能吗?我查看了键盘快捷键等。我使用 intellij 有一段时间了,所以想知道是否有人对此有所了解。

我希望使用列编辑模式,然后是代码完成,也许还有一个 shift+down 箭头来选择多个完成,但没有运气。这并不奇怪。我不想不得不在 GUI 中编写它。

编辑:我添加了一些说明,老实说忘记了这个问题。如果仔细阅读,答案与实际问题无关。我不是在说生成上下文菜单。

4

12 回答 12

51

在您的项目中,右键单击键入屏幕上的任意位置,然后单击“生成...”,然后单击“Getter and Setter”。然后,按住CTRL并单击要为其创建 getter 和 setter 的字段,然后单击“确定”。

于 2013-06-07T16:12:55.850 回答
23

这是一个老问题,但也许它可以帮助某人。

此外,这不是“单击”操作,而是...

要遵循的步骤:

  • 转到类文件
  • 打开结构视图(左面板)
  • 选择所有设置器(如果需要按字母顺序排序)并复制
  • 返回您的目标类/方法
  • 粘贴复制
  • 编辑(以列模式)以包括person.在每个类的开头和()结尾。
于 2016-04-01T10:06:23.360 回答
18

在 Intellij中创建 getter setter 的快捷方式是Alt+ Insert

于 2016-05-26T08:43:33.643 回答
12

当您的光标在您新创建的类中时,您可以按 ALT+Insert - 应该会出现一个对话框,然后您可以选择 Getter 和 Setter

在此处输入图像描述

于 2015-08-14T12:10:44.540 回答
7

这个插件可以帮助GenerateAllSetter

在你想使用的地方按CTRL+ ,它会为你生成 setter 调用。ENTER

于 2017-09-20T13:17:01.837 回答
6

我不确定如何在 IntelliJ 中执行此操作,但我会将您链接到一个框架,该框架使这些事情在 Java 中变得更加流畅:Project Lombok

以您的代码为例,它将如下所示:

public class Person {
    @Setter
    @Getter
    String firstName;
    String lastName;
}

有一个用于 intellij 的插件可以修复它,因此您也不会收到任何烦人的警告。

http://projectlombok.org/

于 2013-06-07T16:12:57.153 回答
5

这是我的插件

Foo foo = new Foo();

像这样的代码

foo.allSet

会产生

foo.setName();
foo.setAge();
foo.setBar();
foo.setTest();
foo.setLike();
于 2016-07-09T08:35:28.120 回答
3

Windows 快捷方式Alt + Insert

Mac 的快捷方式Command + N

然后选择getter and setter

于 2020-04-09T16:33:41.230 回答
1

继续Michael Jarvis回答:

所以我在 IntelliJ IDEA 2018.1.4(社区版)中,我意识到首先选择所有字段以便right-clickAlt+ Insert` 具有菜单属性(getter 和 setter)很重要

在此处输入图像描述

于 2018-06-20T17:00:47.277 回答
0

这是一个示例 gif

我写了一个Jar,它可以快速自动生成Java dto set 方法调用,包括import 和new 语句。

你可以试试这个:https ://github.com/Adrninistrator/GenSetterCalls

添加依赖:“com.github.adrninistrator:GenSetterCalls:0.0.1”

  1. 复制 Java/类文件信息。
  2. 执行“com.github.adrninistrator.gensettercalls.gen.GenSetterCallsAuto”类。
  3. 然后您可以粘贴生成的 setter 代码。
于 2020-01-17T06:52:04.213 回答
0

有一个插件可以做到这一点:https ://plugins.jetbrains.com/idea/plugin/9360-generateallsetter

转到文件 > 设置 > 插件并搜索插件 GenerateAllSetter(参见上面的链接)并安装它

注意:它不需要重新启动 IDE。

安装插件后,创建 object/dto 的实例。将光标放在代码的初始化行上,IntelliJ IDEA 会显示黄色建议灯泡。单击灯泡(或使用 Alt+Enter),将出现建议。在这里,您可以选择生成带或不带默认值的 setter。见图像。

二传手调用建议

下面是生成的代码的图像(有和没有默认值)

没有默认值的设置器

没有默认值的设置器

具有默认值的设置器

具有默认值的设置器

于 2022-01-12T20:40:00.023 回答
0

在 mac 中,您可以通过按 ctrl + return 来插入 getter -> 选择 getter、setter 或两者 -> 选择所需的变量并按 return

于 2020-06-15T15:20:15.333 回答