2013-08-21 5 views
19

equals()hashCode()のコード生成テンプレートを変更することはできますか?equals()とhashCode()のIntelliJのコード生成テンプレートを変更することは可能ですか

これらのメソッドにJava 7 Objectsクラスを使用するように、生成されたコードを使用したいと思います。

+1

http://youtrack.jetbrains.com/issue/IDEA-56007を参照してください。 – CrazyCoder

+0

@CrazyCoder素晴らしいですが、私はあなたがGoogleによってあなたの問題のインデックスを取得することについて何もできないと思いますか? –

+0

YouTrackサイトでは、検索エンジンのインデックス作成が[意図的に無効になっています](http://youtrack.jetbrains.net/robots.txt)です。 – CrazyCoder

答えて

21

アルティメットエディションのrelease 14.1では、サードパーティのプラグインを使用せずにequals()/ hashCode()のコード生成テンプレートをカスタマイズすることができます。

"Alt + Insert"(Generate ...)を押して "equals()and hashCode()"を選択すると、定義済みのテンプレートまたは独自のカスタマイズされたテンプレートのいずれかを選択できます。

"Generate equals() and hashCode()" dialog

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

+0

ニース。私はequalsとhashcode Eclipseスタイルを生成するためのベロシティテンプレートをどこに見つけることができるか知っていますか? – Timo

1

アップデート:バージョン14.1以降、これがサポートされています。

明らかにこの機能は存在しません。

はしかしそれのための要求があり、以下を参照してくださいhttp://youtrack.jetbrains.com/issue/IDEA-56007

4

UPDATE:@datentypからの回答を見てみましょう。古いバージョンに詰まっている人のために私を残してください

これを可能にするプラグインがあります。 は、このものを見てください:

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

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

あなたがする必要がある場合は、それらを修正することができますので、彼らはオープンソースです。

1

はいそれは可能、しかし、いくつかの小さなハックとです。アプリケーションフォルダ内のidea.jarファイルを探します。内部を見て、のようなファイルを見つける:

  • apacheEqualsBuilder3.vm
  • apacheHashCodeBuilder3.vm

およびその他の.vmのファイルを...

これらのテンプレートファイルはequalsHelper.vmからいくつかのマクロを再利用します。

変更JAR内のこれらのファイル慎重にあなたのように再起動アプリのようなと

generate-下のアイデアにつながるチェック>(等しい)とhashCode() - >テンプレート(...右の3つのドット) - >右側のプレビューのみを読む。

Ideaのアップデートをインストールすると、 カスタムテンプレートの変更がこのJARを上書きする可能性があります。

チェックインのアイデア15.お楽しみください。 :-)

+0

私はこのメソッドを以前のものと組み合わせて使用​​して、equals()およびhashCode()用のジェネレータテンプレートを微調整します。 "* .vm"ファイルのコードは、Apache Velocity(http://velocity.apache.org)テンプレート言語で記述されています。 – Rib47

関連する問題