如何在 intellij 中生成 java 的 hashcode 方法并将其成员排序?
How to generate java's hashcode method in intellij with its members sorted?
我想在 Intellij 中生成 java equals() 和 hashcode() 方法。我希望它以 eclipse 生成的方式生成。我创建了一个自定义模板来执行此操作。但是,在 intellij 生成的 hashcode 方法中,成员是按照它们列出的顺序排列的,而不是按字母顺序排列的。但是eclipse在生成equals和hashcode方法时是按字母顺序排序的。我需要在 Intellij 中实现这一点。我找不到要使用的任何排序功能。任何帮助或指示将不胜感激。
谢谢
此请求已提交给 IntelliJ IDEA,它是 declined with the following comment:
We assume that you have ordered your members in a meaningful order
within the file, and that preserving this order would be more
meaningful than alphabetic sorting.
基于@CrazyCoder的suggestion,我开发了一个intellij的宏。
#macro(sort $array)
#set($size=$array.size())
#set($index1=0)
#foreach($element1 in $array)
#set($index2=0)
#set($minElement=$element1)
#set($minElementIndex=$index1)
#foreach($element2 in $array)
#if($index2>$index1)
#if($minElement.name.compareTo($element2.name)>0)
#set($minElement=$element2)
#set($minElementIndex=$index2)
#end
#end
#set($index2=$index2+1)
#end
#set($temp=$array.get($index1))
#set($junk=$array.set($index1, $minElement))
#set($junk=$array.set($minElementIndex, $temp))
#set($index1=$index1+1)
#end
#end
效果不错。
我想在 Intellij 中生成 java equals() 和 hashcode() 方法。我希望它以 eclipse 生成的方式生成。我创建了一个自定义模板来执行此操作。但是,在 intellij 生成的 hashcode 方法中,成员是按照它们列出的顺序排列的,而不是按字母顺序排列的。但是eclipse在生成equals和hashcode方法时是按字母顺序排序的。我需要在 Intellij 中实现这一点。我找不到要使用的任何排序功能。任何帮助或指示将不胜感激。 谢谢
此请求已提交给 IntelliJ IDEA,它是 declined with the following comment:
We assume that you have ordered your members in a meaningful order within the file, and that preserving this order would be more meaningful than alphabetic sorting.
基于@CrazyCoder的suggestion,我开发了一个intellij的宏。
#macro(sort $array)
#set($size=$array.size())
#set($index1=0)
#foreach($element1 in $array)
#set($index2=0)
#set($minElement=$element1)
#set($minElementIndex=$index1)
#foreach($element2 in $array)
#if($index2>$index1)
#if($minElement.name.compareTo($element2.name)>0)
#set($minElement=$element2)
#set($minElementIndex=$index2)
#end
#end
#set($index2=$index2+1)
#end
#set($temp=$array.get($index1))
#set($junk=$array.set($index1, $minElement))
#set($junk=$array.set($minElementIndex, $temp))
#set($index1=$index1+1)
#end
#end
效果不错。