2016-04-15 6 views
2

私はクライアント用のアプリケーションを構築しています。私は、文字列を使ってフィールド値を参照する必要がある状況に遭っています。つまり、ユーザーは文字列を使用して値を変更するフィールドを定義し、これは抽象的なフレームワークの一部なので、技術的に私が変更したいフィールドの名前はわかりません。もちろん、ハッシュマップを使用してこれを行うこともできますが、ハッシュマップにコード化された値ではなく、オブジェクトのフィールドとしてフィールドを保持できるので、Javaのリフレクションを使用することを検討しています。自分の個人的な仕事のためにリフレクションを使用しましたが、Javaリフレクションを使用するのが実際には悪いのかどうか疑問に思っていました。ハッシュマップ方法論に固執する必要があります。Java Reflection Bad Practiceを使用していますか?

(説明した設計上の問題を解決するための他の提案も歓迎です)

おかげ

+1

私はあなたの質問に言い換えます:「オブジェクトを操作するのは悪い習慣なので、意図したとおりに動作しませんか?」私はthibkあなたはこれに答えることができます。 –

+0

ermいいえアプリケーションは実際に変更するオブジェクトの値を設定することに基づいているため、わずかに異なります。問題は、文字列名で参照する必要があることです。 –

+0

反射が非常に遅いため、使用するのは良いことではありません。また、チャージを取得するにはyes変数がありますが、変数の値の1つを予期しない値に変更した場合はどうなりますか? –

答えて

8

私はほとんどがあなただけの反射がある」と言うことができないことに同意します信じているが、問題自体は、意見に基づいています悪い"。時にはそれが唯一の方法です。そのため、多くの図書館でリフレクションが使用されています。ときにはそれが唯一の方法ではない場合もありますが、回避策はさらに悪化します。時にはそれが唯一の方法ではなく、最も簡単な方法ではないかもしれませんが、開発者はまるで考え直す力に驚いています。

最後のものを除いて、解決策を解決策として考える有効な理由はたくさんあります。

関連する問題