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

时间:2013-08-21 16:19:17

标签: java intellij-idea code-generation

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

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

4 个答案:

答案 0 :(得分:22)

从Ultimate Edition的release 14.1开始,可以自定义equals()/ hashCode()的代码生成模板,而无需使用任何第三方插件。

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

"Generate equals() and hashCode()" dialog

Edit "equals() and hashCode()" Velocity templates

答案 1 :(得分:4)

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

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

  

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

     

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

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

答案 2 :(得分:1)

更新:自版本14.1起,支持此功能。

显然此功能不存在。

虽然有请求,请参阅:http://youtrack.jetbrains.com/issue/IDEA-56007

答案 3 :(得分:1)

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

  • apacheEqualsBuilder3.vm
  • apacheHashCodeBuilder3.vm

和其他.vm文件..

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

如果您想重新启动应用程序并在

下查看结果,请仔细更改JAR中的这些文件

generate-> equals()和hashCode() - >模板(......右边三个点) - >右侧只读预览。

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

有效!入住Idea 15.享受。 : - )