有没有办法在 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-当然。
使用“源”菜单或选定字段或类型的上下文菜单中的“生成 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?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法告诉 Dropbox 不要上传某个文件? (Eclipse 相关)
IntelliJ:如何在 Eclipse 中自动突出显示变量
eclipse不自动弹出提示的解决办法(eclipse alt+/快捷键失效)centos 6.7
eclipse或adt-bundle创建的android项目没有自动生成MainActivity.java和activity_main.xml等文件解决办法