Java 在Eclipse中调用对象上所有setter方法的快捷方式?
我想在中创建一个类的对象,然后使用setter方法设置其中的所有属性。有150多种setter方法,我确实希望键入其中的每一种,甚至键入对象实例名称Java 在Eclipse中调用对象上所有setter方法的快捷方式?,java,eclipse,code-generation,setter,Java,Eclipse,Code Generation,Setter,我想在中创建一个类的对象,然后使用setter方法设置其中的所有属性。有150多种setter方法,我确实希望键入其中的每一种,甚至键入对象实例名称对象实例键入dot,然后点击Eclipse的空格键给我建议,然后选择setter方法。我不想这样做150次 因此,我在Eclipse中寻找某种快捷方式,允许您调用该方法上的所有setter。就像您键入实例名,Eclipse调用所有setter方法,例如 instanceName.setterOne(“valOne”) instanceName.se
对象实例
键入dot
,然后点击Eclipse的空格键给我建议,然后选择setter方法。我不想这样做150次
因此,我在Eclipse中寻找某种快捷方式,允许您调用该方法上的所有setter。就像您键入实例名,Eclipse调用所有setter方法,例如
- instanceName.setterOne(“valOne”)李>
- instanceName.setterTwo(“valOne”)李>
- instanceName.setterTree(“valOne”)李>
您的另一个选择(尽管可能不会有成效……)是要求修改繁琐的API;e、 g.支持“构建器”模式。根据我上次的经验,我找不到eclipse有这样的功能。我能做的最多的就是打开
类型层次结构视图(查看该类时按F4键),然后按该类的方法名排序,并复制所有设置器以供进一步编辑
或者,您可以使用反射找出此类的所有方法,并打印setter调用。假设这个类被称为Foo
,您可以有如下内容:
for (Method m : Foo.class.getMethods()) {
if (m.getName().startsWith("set")) {
System.out.println(String.format("instanceName.%s(\"valOne\");", m.getName()));
}
}
我会认真考虑重新设计你的班级,因为你已经达到了这种情况。在不太了解这个类或您的目标的情况下,我敢说几乎没有理由拥有150个单独的字段,特别是如果它们是相同类型的。想想看——如果您已经处于这种困境,那么将来维护这段代码有多容易
如果字段都是相同类型,请考虑使用数组、<代码>列表>代码>或<代码> MAP>代码>(属性->值)。如果它们是多种多样的类型,请考虑如何将它们分解为更易于管理的组件类。
请参见以下问题:
它有一个伟大而简单的方法来做你想做的事情
哦,别理那些仇恨者 我有Eclipse4.6.0,它有一个自动生成getter和setter的选项(不确定早期版本的Eclipse)
(a) 选择您的类(然后右键单击)
(b) 选择源(Shift+Alt+S)
(c) 选择getter和setter
结果弹出窗口(生成getter和setter)允许您选择所有或单个字段
希望这有帮助(如果仍然相关)。我基于anwser创建了自己的更通用的解决方案,它不仅设置了基本类型。这还远远不够完美,但对某些人来说,这可能是一个起点
代码是以下是我使用的一些技巧-
Ctrl+Shift+A->eclipse块选择(这是神奇的工具01)
Ctrl+F->eclipse查找/查找和替换(魔法工具02)
Ctrl+Shift+X->大写(03号工具)
这是我做的事情
块选择->选择所有字段名称(工具01)
例:用户
选择所有首字母并将首字母大写(01/03工具)
例:用户
选择全部并放置单词集(01号工具)
例:setUser
将所有字段对齐。因此,可以直接使用块选择器
选择全部并设置“();”
例如:setUser()
现在你们所有的二传手都准备好了
如果要在括号内插入值,可以使用magic tool 02。查找并替换(稍作思考,您将看到一个选项)
最后,从getter/setter设置中节省无聊的时间
干杯 如果您正在使用IntelliJ,请查看此插件:
你的问题需要更详细地了解大局,因为你所说的事情对我来说毫无意义。这是一个课堂作业,实际上是为了强迫你学习反思吗?我想要一个理由来标记这一点,仅仅因为“不要因为愚蠢的原因而结束这个问题”这一点。接受挑战!请告诉我们导致这种情况的设计。据我所见,一个列表或地图可能可以代替这150个字段。。。”“权力不会腐蚀人;然而,愚人一旦掌握了权力,就会腐败权力“@simranNarula:我会用一句更贴切的话来匹配你的话:不要咬喂你的手。侮辱你请求帮助的社区不是明智之举。Emacs是我选择的文本编辑器,但键盘宏功能肯定很笨重。非常感谢。。这就是我要找的。。。我没有研究过思考。。。但不幸的是,有些人不明白有人在学习,这就是这个地方的目的……他们也忘记了在学习时问的问题。。。。你在这里问一个问题,人们围过来投票否决这个问题。。。就因为他们能做到。这里的大多数人缺乏常识……“权力不会腐蚀人;然而,傻瓜,如果他们进入权力的位置,就会腐蚀权力”F4对我来说是无价的:)从FBO到DTO的映射只需要10个设定者,但仍然很乏味:)(是的,我可以使用XSTREAM)谢谢你的帮助,但是这个类不是我写的,我不能修改它:(在大型组织(如生产、电信、银行公司)中,实体只有许多字段。这是否意味着bean没有字段