3

リフレクションまたは関連する API を使用して、実行時にクラスの静的フィールドを動的に作成する方法があるかどうか疑問に思っていました。必要に応じて、誰かが適切な手順を教えてくれれば、Java ネイティブ インターフェイスを使用してこのタスクを実行できます。私は完全に楽しみのためにこれを行っているので、ハッシュマップなどのデータ構造を使用したくありません。これは完全に理論的な状況であり、実際のプログラムには使用していないため、マップの使用を提案しないでください。ありがとう。

4

2 に答える 2

5

バイトコード操作を使用して、クラスのロード時にこれを行うことができます。

ただし、これは非常に複雑なソリューションであるため、他のオプションを検討します。

また、コンパイル時に未知の新しいフィールドを使用してもあまり役に立ちません。これは、それに対して何もコンパイルできないためです。リフレクションを使用してアクセスする場合は、最初に Map を使用することをお勧めします。

于 2013-03-14T23:38:19.940 に答える
0

Java は、メタプログラミングやランタイム プログラミングを特に優れた効果的な方法でサポートしていません。

デコレータ パターンを使用できます。静的フィールドを追加するオブジェクトをラッパー オブジェクトに渡すことができます。このラッパーには静的フィールドがあり、ラッパー オブジェクトへの呼び出しは、ラップされたオブジェクトに関連付けられます。

探している機能について詳しく教えていただければ、より良い解決策を提供できると思います。どうしても実行する必要がある場合は、ランタイム プログラミングをサポートする別の言語を調べたほうがよいかもしれません。

于 2013-03-14T23:51:50.940 に答える