如何在intellij中生成Java的哈希码方法,并对其成员进行排序?
我想要在Intellij中生成java equals()和hashcode()方法。我希望它能够生成日食产生的方式。我已经创建了一个自定义模板来执行此操作。但是,在由intellij生成的hashcode方法中,成员按列出的顺序排列,而不是按字母顺序排列。但是eclipse在生成equals和hashcode方法时按字母顺序对它们进行排序。我需要在Intellij中实现这一点。我找不到任何排序功能使用。任何帮助或指针将不胜感激。 谢谢如何在intellij中生成Java的哈希码方法,并对其成员进行排序?
这一请求已经提交的IntelliJ IDEA,这是declined with the following comment:
我们假设你已经在文件中的一个有意义的顺序 订购的成员,并且保持这个命令会更多 比字母排序有意义。
谢谢!你认为可以编写一个排序算法(冒泡排序或任何排序)来实现这一点吗? –
@NagabhushanSN模板基于Velocity语言,应该可以实现排序,[这里是一个例子](https://community.atlassian.com/t5/Answers-Developer-Questions/Sort-List-of-Objects -in-速度/ QAQ-p/539823)。 – CrazyCoder
谢谢你的例子。我会研究它。我发现这[sorttool](https://velocity.apache.org/tools/devel/apidocs/org/apache/velocity/tools/generic/SortTool.html)。 在Intellij Velocity Templates中可以使用它吗? –
基于@ 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中引发错误报告。 –
我真的很好奇你为什么要强制这个? –
在我的项目组中,有些人使用eclipse,大部分代码都是使用eclipse的功能编写的。我最近加入了球队,所以我必须遵循到目前为止的情况。我习惯于Intellij。那么,如果有什么办法可以做到这一点?你认为可以编写一个排序算法(冒泡排序或任何排序)来实现这一点吗? –