Is it possible to change IntelliJ's code generation template for equals() and hashCode()

前端 未结 4 1247
生来不讨喜
生来不讨喜 2020-12-17 08:54

Is it possible to change the code generation template for equals() and hashCode()?

I would like the generated code to use the Java 7

相关标签:
4条回答
  • 2020-12-17 09:15

    UPDATE: have a look at the answer from @datentyp. Leaving mine for those stuck on the old versions

    There are plugins to allow this. Please have a look at this ones:

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

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

    They are opensource so you can amend them if you need to.

    0 讨论(0)
  • 2020-12-17 09:16

    Update: As of version 14.1 this is supported.

    Apparently this functionality does not exist.

    There is a request for it though, see: http://youtrack.jetbrains.com/issue/IDEA-56007

    0 讨论(0)
  • 2020-12-17 09:30

    Yes it is possible, but with some small hack. Locate your idea.jar file in app folder. Look inside and find files like:

    • apacheEqualsBuilder3.vm
    • apacheHashCodeBuilder3.vm

    and other .vm files..

    These template files reuse some macros from equalsHelper.vm.

    Change these files inside JAR carefully as you like restart app and check result in Idea under

    generate->equals() and hashCode()->Template (... three dots on the right)->read only preview on the right side.

    I think installing update of Idea may overwrite this JAR with your custom template changes.

    It works! Checked in Idea 15. Enjoy. :-)

    0 讨论(0)
  • 2020-12-17 09:34

    As of release 14.1 of the Ultimate Edition it is possible to customize the Code generation template of equals()/hashCode() without the use of any third party plugin.

    Press "Alt + Insert" (Generate...), choose "equals() and hashCode()" and you will be able to select one of the predefined templates or a customized template of your own.

    "Generate equals() and hashCode()" dialog

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

    0 讨论(0)
提交回复
热议问题