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

别等时光非礼了梦想. 提交于 2019-11-27 23:04:47

问题


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

I would like the generated code to use the Java 7 Objects class for theses methods.


回答1:


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.




回答2:


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.




回答3:


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




回答4:


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. :-)



来源:https://stackoverflow.com/questions/18362721/is-it-possible-to-change-intellijs-code-generation-template-for-equals-and-ha

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!