質問

そうこうしているうちに、やっと話をしたり、同僚C++と嘆いたように文字列のクラスの名前の分野のエキス分野では、その名前;つまり、欠けています。彼は戸惑を見た時に、だれもがまだないことです。

トップを切った思い応答のため、その他にも"こんにちはついては親権者の方の同意が必要で右する事ができます。私は日本の将来のあるものかを実際に行ってい反射に様々な言語で対応します。残念ながら、私の事例から私のウェブプログラミングPythonでは、私たちがいます。このリストが浮かび上がった:

  1. 与えられconfigファイルラインのように
    x="Hello World!"
    y=5.0
    動的に設定の分野にも config オブジェクトと同じ価値観とファイルです。(このついていないのがちょっとした思いはC++のですが、実はと思います。)

  2. 並び替えをする場合は、リストオブジェクトソートに基づく任意の属性と属性の名前からコンフィグファイルまたはwebます。

  3. 書き込みソフトウェアを使用したネットワークプロトコルの反射で呼び出す方法に基づく文字列からのプロトコルです。例えば、しっかりとしたIRCボットと翻訳
    !some_command arg1 arg2
    入される関数)を呼び出 actions.some_command(arg1, arg2) 印刷どのような機能へのIRCチャンネル

  4. 使用時のPythonの__getattr__機能するようなmethod_missing Ruby/Smalltalk)すべてのクラス全体の統計などのlate_total.毎に統計的にしたかったのを追加することができ_percentを取得する統計として合計の割合った計数(例えば?late_total_percent).反射してこの非常に簡単です。

では誰でもできるのでここに参加してくれる事例からその独自のプログラミングの経験が反射してい次回作を問うのはなぜか"っていう"たいと思います。

役に立ちましたか?

解決

できるリスト以下の利用のための反射:

  • 下旬に結合
  • セキュリティ(introspectコードのセキュリティ上の理由により)
  • コードの解析
  • 動的なタイピング(鴨タイピングな反射)
  • Metaprogramming

一部の実用途の反射から私個人の経験:

  • 開発したプラグインシステムに基づく反射
  • 使用スペクト指向プログラミングモデル
  • 行う静的コード解析
  • 様々な依存関係を注入の枠組み
  • ...

反射が良いこと)

他のヒント

に使用しました反射に現在の法情報のための例外は、ロギング等

string src = MethodInfo.GetCurrentMethod().ToString();
string msg = "Big Mistake";
Exception newEx = new Exception(msg, ex);
newEx.Source = src;

の代わりに

string src = "MyMethod";
string msg = "Big MistakeA";
Exception newEx = new Exception(msg, ex);
newEx.Source = src;

かやコピー/ペースト相とコード。

私の状況現したいことが分かったストリームのXML来の線と必要なインスタンスを生成する主体オブジェクトの移植そのものから元素のストリームです。での使いやすさへの反映を図る体オブジェクトに対応できるXML要素以外を書く巨大なメンテナンスの悪夢条件とします。が明らかに依存関係と、XMLスキーマを合成して構造や名称自体が、私はどちらもコントロールしているのではなく、大きな問題となっています。

あの時代にしたい動的にインスタンスを生成および作物の種類になれまで行います。例えば、又は-mappersやプラグインです。嘲笑う枠組みを使えるようにして、書き込みを行う場合は、ログイン図書館、ダイナミックにしたい検討種類や特性の例外をスローしました。

だと思うが、キッシュがとてもおいしかったでしょうげます。

を見たいの反射でもなければならないときに便利で、入力データ(xml)は複雑な構造で簡単にマップされるオブジェクト-インタプリタが必要である"は"関係のう場合がございます。

として反映は比較的容易であるjavaでは、Iを使うことがあるので簡単にデータのキーと値のマップの立場に立っていて、小さな固定セットの鍵となります。一つ一つ手で簡単なる場合にキーが有効である場合のクラスは、セッター setKey(String data))に変更することができまのタイプ(テキスト入力データを非表示に変換。g簡単にキャストint getKey())では、アプリケーションが頼りに正しく入力データです。場合には一部のキー-値ペアの変化につオブジェクト(例えば形intロ)のみを使用することもでき、データ-オブジェクトおよびそのユーザーがいをしていてもチェックのパーサです。このような良識あるアプローチはあくまで行...

書dispatchers.ねじの使用はpythonの反射能力を派遣XML-RPCと石鹸できます。RMIを使Javaの反射apiを派遣すること。

コマンド行の解析.築configオブジェクトのコマンドラインパラメータが渡されます。

書き込みユニット実験で使用反射が主に使用しましたこのバイパスのアクセス修飾子(Java).

に使用しました反射のクライアントまで、フルのC#があったものの内部または民法の枠組みは第三者の図書館がたかったのです。

(免責事項:たちの見解を示すものではない、ベスト実践が、社内の方法によって変更する可能性があり、後編です。そのためにあります。)

でも、静的型言語、また反射時に必要なもの"ダイナミック".でお手軽金型用(走査員のオブジェクトJavaで使われているJMX動的プロキシかなります。とが一の場合での道のり(ほとんどいつでも必要なものでなんとかコンパイラのないようだ。)。

私は一般的に使用反射のためのデバッグしやすくなります。の反射をより簡単に、より正確に表示のオブジェのシステムの品揃えを印刷。多くの言語が初のクラスの機能を一体にしたもの呼び出し機能のオブジェクトなどの特別なコードです。

が、しかし、こうしたいっています使用のハッシュテーブル.店舗の分野のキーに対する分野の名前です。

また、その作成基準の取得/設定機能、マクロの作成るものです。 #define GetX() Get("X") ういうことも得意なんですね。

あなたの実施自分の不完全反射することができてうれしいです。

のための先進のユーザーまでをコンパイルをコードすることが可能にするデバッグ出力を生成、それを実行す。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top