2011-01-06 10 views
2

スクリプトファイル(多分XMLまたはJSONファイル)からデータを読み込んで解析することで、列挙型の定数セットを定義する方法はありますか?実行時に列挙型を定義する単純な方法

私はプロジェクトでenumを集中的に使用しているため、多くのパラメータを持っています(すべてのエントリが10-15パラメータを持つことができます)。私は最終的なユーザに修正方法を伝えたいと思いますJavaソースを変更して再コンパイルする必要はありません。

いくつかの静的型チェックが含まれているとは思いませんが、コンパイル時にファイルを前処理し、情報を使って静的列挙型の値を生成する簡単な方法があります。私は、この作業を行い、.javaファイル出力を生成するための別のスクリプトを書くことができますが、これはコンパイルする準備ができていますが、これはユーザが全体を再コンパイルする必要があることを意味します。

+0

可能重複http://stackoverflow.com/questions/478403/can-i -add-and-remove-of-enumeration-at-runtime-in-java) –

答えて

2

ません - Javaでプリミティブ/ビルトイン列挙型は静的なので、彼らはで処理され、コンパイル時。あなたは、そのような機能を実現するために動的タグ(探しているもののような自作の動的列挙体)のシステムを作成する必要があります。

運が良かった!

-1

できません。列挙型は本質的に開発中のプログラマーのためのツールです。

実行時に新しい要素を列挙型に追加することはできたとしても、まったく使用されないため意味がありません。 結局のところ、コンパイル時にenum要素が存在しない場合は、その要素を処理するロジックを記述していないことを意味します。

0

これはC#に基づいているため、YMMVです。列挙型をリファクタリングする必要がある場合は、既存の列挙型設定を複製する静的メソッドを持つクラスを作成し、動的にロードされ、別のメソッドを使用してアクセスされるDicitonaryから新しい設定を取得できます。私は何かをしたsimilar C#(とこのSO質問)。あなたが一から始めるなら、私は言うだろう - 列挙型に頼らないでください。

関連する問題