繁体   English   中英

如何在Intellij中对其成员进行排序的方式生成Java的哈希码方法?

[英]How to generate java's hashcode method in intellij with its members sorted?

我想在Intellij中生成java equals()和hashcode()方法。 我希望它生成日食生成方式。 我创建了一个自定义模板来执行此操作。 但是,在intellij生成的hashcode方法中,成员按其列出的顺序排列,而不是按字母顺序排列。 但是eclipse在生成equals和hashcode方法时按字母顺序对其进行排序。 我需要在Intellij中实现这一点。 我找不到要使用的任何排序功能。 任何帮助或指针将不胜感激。 谢谢

此请求已提交给IntelliJ IDEA,但被拒绝,带有以下注释

我们假设您已经按照文件中的有意义顺序对成员进行了排序,并且保留此顺序比按字母排序更有意义。

基于@CrazyCoder的建议 ,我为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

效果不错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM