有没有办法在Eclipse中自动生成getter和setter?

时间:2011-08-28 14:56:39

标签: java android eclipse

我正在开发一个新的Android项目(Java),并创建了一个包含大量变量的Object。由于我打算为所有这些添加getter和setter,我想知道:Eclipse中是否有一个快捷方式可以自动生成给定类中的getter和setter?

19 个答案:

答案 0 :(得分:335)

在所需类的源代码窗口中打开上下文菜单(即右键单击)。然后选择Source子菜单;从该菜单中选择Generate Getters and Setters...将导致出现向导窗口。

Source -> Generate Getters and Setters...

选择要为其创建getter和setter的变量,然后单击OK

答案 1 :(得分:69)

在Eclipse Juno中,默认情况下, ALT + SHIFT + S,R 会打开getter / setter对话框。请注意,您必须按下所有4个键。

答案 2 :(得分:68)

Right click -> Source -> Generate setters and getters

但为了使它更方便,来自Windows -> Preferences -> General -> Keys的{​​{3}} ALT + SHIFT + G

答案 3 :(得分:37)

所有其他答案都只关注IDE级别,这些并不是生成getter和setter的最有效和最优雅的方法。 如果你有几十个属性,相关的getter和setter方法将使你的类代码非常详细。

我用来自动生成getter和setter的最好方法是在java项目中使用项目lombok注释,lombok.jar将在编译java代码时生成getter和setter方法。

你只关注类属性/变量的命名和定义,lombok将完成其余的工作。这很容易维护您的代码。

例如,如果要为age变量添加getter和setter方法,只需添加两个lombok注释:

@Getter @Setter 
public int age = 10;

这等于代码:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

您可以在此处找到有关lombok的更多详细信息:Project Lombok

答案 4 :(得分:30)

生成吸气剂的方法&塞特犬 -

1) Alt + Shift + S ,然后 R
2)右键单击 - >来源 - >生成Getters&制定者
3)转到来源菜单 - >生成Getters&制定者
4)转到 Windows菜单 - >偏好 - >一般 - >键(在文本字段上写入生成Getters& Setters)
5)点击该字段的错误灯泡 - >创造吸气者&塞特斯... 6) Ctrl + 3 并编写getter&在文本字段上设置选择器然后选择选项Generate Getters&塞特斯

如果 Mac OS 按Alt + cmd + S,则选择Getters&塞特斯

答案 5 :(得分:11)

右击 - >生成getter和setter可以很好地完成工作但是如果你想在windows中的eclipse中创建一个键盘快捷键,你可以按照以下步骤操作:

  1. 转到窗口>首
  2. 转到常规>键
  3. “快速助手 - 为字段创建getter / setter”列表
  4. 在下面的“绑定”文本字段中,按住所需的键(在我的情况下,我使用ALT + SHIFT + G)
  5. 点击Apply并确认
  6. 现在在Java编辑器中,选择要为其创建getter / setter方法的字段,然后按步骤4中设置的快捷方式。在此窗口中单击确定以创建方法。
  7. 希望这有帮助!

答案 6 :(得分:9)

不确定

  

使用“源”菜单或选定字段或类型的上下文菜单中的“生成Getter和Setter”,或使用类型中的文本选择打开对话框。 Generate Getters and Setters对话框显示所选类型的所有字段的getter和setter。方法按类型的字段分组。

请查看help documentation了解详情。

答案 7 :(得分:8)

是。右键单击代码,您会看到弹出的菜单;在它旁边有“Source”,“Generate Getters and Setters”,你可以在我的系统上看到快捷键,即Alt + Shift + S和R.

同样,您可以导航到该主菜单中的其他子菜单,通过键入相应的快捷方式,直接进入子菜单而不是主上下文菜单,然后可以从菜单中选择或键入另一个字母从列表中选择。

答案 8 :(得分:7)

Mac OS Alt+Cmd+S然后选择“... Getters and Setters”

答案 9 :(得分:7)

我更喜欢先创建私有字段

private String field;

Eclipse将自动突出显示该变量,方法是将光标放在新变量上,按Ctrl + 1.然后它将为您提供Create getter和setter的菜单。

我按下Ctrl + 1,因为它对我接下来的想法更加明智。

答案 10 :(得分:5)

按Alt + Shift + S + R ...然后只选择您必须生成Getters或Setter或两者的所有字段

答案 11 :(得分:4)

有一个开源jar知道为Lombok,您只需添加jar然后使用@Getter & @Setter注释您的POJO,它将自动创建getter和setter。

除此之外,我们可以使用其他功能,例如@ToString@EqualsAndHashCode以及其他很酷的功能,可以从应用程序中删除香草代码

答案 12 :(得分:3)

Eclipse>来源>生成Getters和Setter

答案 13 :(得分:3)

**在Eclipse Ide中

用于生成setter和getter - > alt + shift + s + r然后Alt A然后点击ok;

仅生成getter - > alt + shift + s + r然后按g然后单击ok按钮;

仅生成setter - > alt + shift + s + r然后按l然后单击ok按钮; **

答案 14 :(得分:2)

右键单击要为其生成getter和setter的属性,然后选择

Source -> Generate Getters and Setters...

答案 15 :(得分:2)

1)转到 Windows->偏好设置 - >常规 - >密钥

2)选择command生成获取者和设置者

3)在Binding 按快捷键 以便使用(例如 Alt + Shift + G )< / p>

4)点击应用,您就可以了

答案 16 :(得分:1)

  1. 在Eclipse中打开类文件
  2. 双击班级名称或突出显示
  3. 然后导航至来源 - &gt;插入代码
  4. 点击Getter and Setter
  5. 它会打开一个弹出窗口,以选择要为其生成getter / setter方法的字段。选择字段,然后单击“生成”按钮。 enter image description here enter image description here

答案 17 :(得分:1)

使用Project Lombok或更好的Kotlin作为您的Pojos。

(另外,将Kotlin添加到你的简历中;))

这:

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

会变成这样:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

或者使用Kotlin&#34;数据&#34;类。你最终编写了更少的代码行。

答案 18 :(得分:1)

  • 对于所有变量 ALT + SHIFT + S,然后按R并选择全部,请按ALT + A

  • 对于单个变量,将光标指向该变量,然后按CTRL + 1并转到建议中的第二个选项

ScreenShot