是否可以为equals()和hashCode()更改IntelliJ的代码生成模板

是否可以更改equals()hashCode()的代码生成模板?

我希望生成的代码将Java 7 Objects类用于这些方法。

从Ultimate Edition的第14.1版开始,可以在不使用任何第三方插件的情况下自定义equals()/ hashCode()的代码生成模板。

按“Alt + Insert”(生成…),选择“equals()和hashCode()”,您就可以选择其中一个预定义模板或自己的自定义模板。

“生成equals()和hashCode()”对话框

编辑“equals()和hashCode()”Velocity模板

更新:看看@datentyp的答案。 离开那些坚持旧版本的人

有插件允许这样做。 请看看这些:

http://plugins.jetbrains.com/plugin/6875?pr=idea

http://plugins.jetbrains.com/plugin/7244?pr=idea

它们是开源的,因此如果需要,您可以修改它们。

更新:从版本14.1开始,这是受支持的。

显然这个function不存在。

但有一个请求,请参阅:http: //youtrack.jetbrains.com/issue/IDEA-56007

是的, 这是可能的,但有一些小的黑客。 在app文件夹中找到idea.jar文件。 查看内部并找到如下文件:

  • apacheEqualsBuilder3.vm
  • apacheHashCodeBuilder3.vm

和其他.vm文件..

这些模板文件重用了equalsHelper.vm中的一些宏。

在重新启动应用程序时仔细更改JAR中的这些文件,并在下面的Idea中查看结果

generate-> equals()和hashCode() – > Template(…右边三个点) – >右侧只读预览。

我认为安装Idea的更新可能会使用您的自定义模板更改覆盖此JAR。

有用! 入住Idea 15.享受。 🙂