2011-01-21 21 views
4

多くの列挙型に格納されている多くの静的データが必要なJavaアプリケーションを作成しています。私はユーザーフレンドリーな方法は、たとえばxmlやjsonファイルを使用してこのデータをカスタマイズするが、私はそれをエレガントに行う方法を探していたenumsで直接行うことはできませんので。Javaの前処理フェーズ

xmlファイルを読み込み、ソースの残りの部分でコンパイルされたJavaソースを生成する独立したJavaプログラムを用意するのがよい解決策になるかもしれません。私のdoubsは、スタンドアロンの方法でこのプロセスを自動化する方法です(例えばant?)、Eclipseとシームレスに統合する方法です。プロジェクトで作業しているときに自動的に行われます。探していますか?私の問題を解決するための提案?

ありがとうございます!

+0

これらの列挙はどのように使用されますか?それらはコードの他の部分とどう関係していますか? – Maxym

+0

コンパイラAPIを使用して、実行時にこれらをロードできます。 –

+0

それはゲームなので、呪文やユニット、建物などの多くの特性を定義するために使用されます。今まで(そして私はまだ終わりから遠い)、私はすでに20〜25の列挙型のようなものに達しました。それぞれのパラメータを省略しながらenum定数をハードコーディングするだけで満足できますが、いくつかの設定ファイルの中にすべてを入れたいと思っています。 – Jack

答えて

1

あなたのソースからjavaを生成することが唯一の仕事であるプロジェクトを作成します。 生成フェーズがAntによって行われていることを確認してください。

このプロジェクトをeclipseにラップし、既存ののターゲットを呼び出すカスタムのビルダーを使用します。

これはデベロッパーのインフラストラクチャの標準的な部分です。これは間違いなく機能します。

2

アイテムと全体の構造が何らかの形で固定されている場合(そして属性の値が最も変化するものは)、アイテムごとに1つのエントリを持つ列挙型を定義し、列挙型にロード時またはオンデマンドで、外部ソース(XML/JSON)から読み取られたデータ

0

XMLファイルをあなたのjarファイルに含め、開始時にenumをキーとして使用するマップにロードすることを検討しましたか?

1

あなたはアリがシームレスにそれをachiveする日食と統合持つことができます、Eclipseオープンプロジェクトのプロパティで

を「ビルダー」に行き、「新しい...」をクリックし、「アリ・ビルダー」を選択し、ビルドファイルを選択「ターゲット」タブに移動し、「ターゲットの設定...」をクリックして「自動ビルド」を選択します。目的のターゲットを選択すると完了です。ターゲットはソースファイルを保存するたびに実行されます( "Build Automatically"が選択されている場合)。

1

コードを生成するプラグインを作成することができます。これを行うプラグインがいくつかあります。自動的には動作しませんが、コンパイルの直前に実行されるように標準のMavenライフサイクルに接続することができます。 私はちょうどそのような何かをやった。