在Eclipse中生成POJO的所有setXXX调用?

在Eclipse中生成POJO的所有setXXX调用?,eclipse,jpa,Eclipse,Jpa,我目前正在对JPA实体进行大量测试,我必须不断调用实体上的setter方法,如下所示: myEntity.setXXX(value); myEntity.setYYY(value); myEntity.setZZZ(value); EclipseIDE中是否有任何神奇的快捷方式或菜单来生成所有以“set”开头的setter方法调用,比如在ctrl-space(自动完成)弹出窗口中显示的那些方法(我认为从Object继承的方法不会显示在弹出窗口中) 所以我想象着这样的事情: 我输入myEntit

我目前正在对JPA实体进行大量测试,我必须不断调用实体上的setter方法,如下所示:

myEntity.setXXX(value);
myEntity.setYYY(value);
myEntity.setZZZ(value);
EclipseIDE中是否有任何神奇的快捷方式或菜单来生成所有以“set”开头的setter方法调用,比如在ctrl-space(自动完成)弹出窗口中显示的那些方法(我认为从Object继承的方法不会显示在弹出窗口中)

所以我想象着这样的事情:

  • 我输入myEntity.set
  • 和myEntity.set*立即生成
  • 我是一个懒惰的程序员,目前正在使用EclipseHeliosIDE

    谢谢大家!


    编辑 我不是在寻找source->generategatter和setter,因为这将帮助我生成方法本身。生成
    方法调用是我想要实现的。

    源-->生成getter和setter…

    当光标位于属性上时,您还可以通过快速修复命令(
    Ctrl+1
    )进行操作


    编辑

    如果您只是想寻找一种更快的方法将属性从一个对象复制到另一个对象,我建议您考虑使用反射。我认为从长远来看,这条路比一遍遍地生成相同外观的代码要容易得多

    可以消除编写纯反射代码时的一些痛苦。例如,将目标bean和另一个bean或映射作为源。

    我已经找到了答案(我一直在搜索这个东西)

    最简单的方法是在“包资源管理器”中展开类成员,按名称对它们进行排序,多选所有的setter,然后在剪贴板中拥有所有的方法名称


    ;-)

    我喜欢@Oscar的答案。不过,这确实会带来一些清理工作

    当我从剪贴板粘贴时,会得到如下内容:

    setOne(int)  
    setTwo(String)  
    
    为了解决这个问题,我首先在search/replace regexp中添加分号:

    search = (.)$
    replace = \1;
    
    然后添加getter调用(假设传入的数据对象名为“data”):


    这不会在方法调用中处理多个参数…

    有eclipse插件可以做到这一点。插件的名称是**

    快速代码


    **。有这么多模板。其中有一个为类的create对象和all setters方法生成代码的模板

    您可以使用右侧的轮廓。在那里,您可以使用视图的工具栏按钮按字母顺序或声明顺序排序

    然后你可以过滤掉不需要的信息


    你也可以从这里复制..所有setter函数或getter函数名称…

    回复:你对我答案的评论(我删除了它,因为它完全忽略了问题,我不知道答案):是的,你只是在偷懒:)@Matt Ball:谢谢,我很荣幸。哈哈,我也在寻找同样的捷径。。。HahaThank感谢您对使用通用BeanUtils框架的建议。但我的目的不是复制属性,而是帮助我在进行测试时简化工作,包括创建新的pojo、调用setter方法(可能类似于10个setter方法),并避免遗漏调用某些setter方法,我正在寻找一些东西来帮助在编辑器中生成setter方法调用。但我现在对这一目标能否实现持怀疑态度:——)阿尔伯特·金表示同意。FWIW,
    copyProperties
    的命名有点误导——它实际上使用getter/setter来复制属性值(因此私有字段名称本身不需要在POJO之间匹配)。这是一个非常好的主意,并且节省了大量时间,因为我必须将值传递到类的238个set方法中。然后,您可以使用“Toggle Block Selection Mode”(切换块选择模式)以实例名称作为setter的前缀,并在行的末尾添加“;”。如果希望获得代码中的顺序,只需在使用“Java”透视图而不是“Java EE”进行多重选择后取消选择顺序即可“,如果你没有看到类成员的列表,这很有趣-我想要这个已经很久了,通常会在整个类中使用正则表达式来获得它。我几乎完全是错误地发现了这一点,而您已经为我节省了大约5分钟来编写这个糟糕的单元测试。非常感谢。那很有帮助!只是想知道我在哪里可以找到更多关于可以在Eclipse中使用的regexp的信息?我只想去掉(和)之间的值;例如,将setTwo(String)设置为setTwo()?
    search = s(et.*)\(.*  
    replace = s\1(data.g\1());