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

Posted

技术标签:

【中文标题】有没有办法在 Eclipse 中自动生成 getter 和 setter?【英文标题】:Is there a way to automatically generate getters and setters in Eclipse? 【发布时间】:2011-11-05 12:10:32 【问题描述】:

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

【问题讨论】:

对我来说听起来像是个跟踪狂……我以前只是在没有 IDE 的情况下进行所有 Java 编程,所以使用 Eclipse 对我来说还是比较新的。 @krio - 全世界都不使用 Eclipse 开发 Java。我的大部分工作都是在 IntelliJ 中完成的,当我开始在 Eclipse 中工作时,我发现自己问了很多这样的问题。 @Phil, vcsjones - 非常抱歉,但请检查一下,-google.com.au/… - 我猜 *** 说研究很重要 最快的方法:ctrl+3 g g a s @Konstantin 只是说要避免在同一个类中使用它们,所以当你可以引用this.mCount 时不要调用this.getCount()。虽然这可能是一个成本更高的操作,但它是一种更简洁的方法,可以通过 getter 和 setter 访问其他对象的变量。 【参考方案1】:

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

Source -> Generate Getters and Setters...

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

【讨论】:

只有“生成元素注释”,没有 Getter 和 Setter。我正在使用 Eclipse 4.4.0,安装了 PDT 插件。与此同时,这可以使用 - mikeangstadt.name/projects/getter-setter-gen . 在 Eclipse Mars.2 Release (4.5.2) 上运行良好。谢谢。 您也可以使用键盘快捷键SHIFT+ALT+S 访问此子菜单,然后按R 打开“生成Getters 和Setters”选项。 有趣的是,我的答案如何如此受欢迎,但这些天我只会使用 Lombok,如下面的其他人所述。 您也可以使用 CMD/CTRL- 并开始输入“get”或“set”,提案窗口将列出所有缺少的 getter/setter。选择您要添加实现的那个。【参考方案2】:

当然。

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

查看help documentation 了解更多信息。

【讨论】:

【参考方案3】:

Right click -> Source -> Generate setters and getters

但为了更方便,I always map this to ALT+SHIFT+G from Windows -> Preferences -> General -> Keys

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

    转到窗口 > 首选项 转到常规 > 按键 “快速协助 - 为字段创建 getter/setter”列表 在下面的“绑定”文本字段中,按住所需的键(在我的情况下,我使用 ALT + SHIFT + G) 点击应用并确定 现在在您的 Java 编辑器中,选择您要为其创建 getter/setter 方法的字段,然后按您在第 4 步中设置的快捷方式。在此窗口中点击确定以创建方法。

希望这会有所帮助!

【讨论】:

【参考方案6】:

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

【讨论】:

你可以省略 SHIFT 部分,只做 ALT + S, R 。 在 Eclipse Kepler 中不能省略 SHIFT 您可以在 Eclipse Oxygen 中省略 SHIFT 你不能在 Eclipse 2018-12 中忽略 SHIFT 在 Spring Tool Suite 3 --> ALT + SHIFT + S(等待菜单打开)然后按 R【参考方案7】:

我更喜欢先创建私有字段

private String field;

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

我按 Ctrl + 1 是因为它对我认为您接下来想要的内容更智能。

【讨论】:

【参考方案8】:

Eclipse > Source > 生成 Getter 和 Setter

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

生成 Getter 和 Setter 的方法 -

1) Alt+Shift+S,然后R kbd> 2) 右键 -> Source -> 生成Getter & Setter 3) 转到 Source 菜单 -> 生成 Getter & Setter 4) 转到 Windows 菜单 -> 首选项 -> 常规 -> 键(在文本字段上写入生成 Getter 和 Setter) 5) 单击字段的错误灯泡 -> 创建 getter 和 setter ... 6) Ctrl+3 并在文本字段中写入getter & setter,然后选择选项Generate Getters & Setters

如果 Mac OS 按 Alt+cmd+S 然后选择 Getters & Setters

【讨论】:

我认为 1 这样会更容易一些:1)按 Alt + Shift + S,然后按 R 按 Ctrl-3 并随后直接键入“getter”从列表中丢失。比特定的快捷方式更容易记住,因为它适用于每个命令、视图等。 @Bananeweizen - 谢谢【参考方案12】:

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

Source -> Generate Getters and Setters...

【讨论】:

【参考方案13】:

1) 转到 Windows->Preferences->General->Keys

2) 选择command生成Getter和Setter

3) 在Binding按快捷键喜欢用(如Alt+Shift+G

4) 点击申请,一切顺利

【讨论】:

【参考方案14】:

所有其他答案都只关注 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;

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

【讨论】:

就是这样!非常感谢!实际上,您的答案应该是最重要的,因为 lombok 是唯一真正的解决方案,可以避免看到必须生成或编写的所有样板 Java 代码。谢谢! Project Lombok(或者至少是这个想法)应该是 Java 11 的一部分。我将 Kotlin 用于 Pojo 类只是为了逃避 getter setter 生成:/【参考方案15】:

**在 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按钮;**

【讨论】:

【参考方案16】:

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

除此之外,我们还可以使用其他功能,例如 @ToString 、@EqualsAndHashCode 和其他很酷的东西,可以从您的应用程序中删除原始代码

【讨论】:

【参考方案17】:
    在 Eclipse 中打开类文件 双击类名或突出显示它 然后导航到源 -> 插入代码 点击 Getter 和 Setter

它会打开一个弹出窗口来选择要为其生成 getter/setter 方法的字段。选择字段并单击“生成”按钮。

【讨论】:

【参考方案18】:

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

(另外,将 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 的“数据”类。你最终编写的代码行数更少。

【讨论】:

【参考方案19】:

对于所有变量 ALT+SHIFT+S 然后 R 并选择所有按 ALT+A

对于单个变量将光标指向变量,然后按 CTRL+1 并从建议中选择第二个选项

【讨论】:

以上是关于有没有办法在 Eclipse 中自动生成 getter 和 setter?的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse 中自动为类创建构建器

有没有办法告诉 Dropbox 不要上传某个文件? (Eclipse 相关)

IntelliJ:如何在 Eclipse 中自动突出显示变量

eclipse自动提示功能没了的解决办法

eclipse不自动弹出提示的解决办法(eclipse alt+/快捷键失效)centos 6.7

eclipse或adt-bundle创建的android项目没有自动生成MainActivity.java和activity_main.xml等文件解决办法