常々反射的に、何かの情報を見たことがある時によく聞いたり、デザインモードで使ったりしていたのですが、まだ深く理解できていない気がするので、今回改めて勉強しました。それは大丈夫です!
//第一种方式: Classc1 = Class.forName("Employee"); //第二种方式: //java中每个类型都有class 属性. Classc2 = Employee.class; //第三种方式: //java语言中任何一个java对象都有getClass 方法 Employeee = new Employee(); Classc3 = e.getClass(); //c3是运行时类 (e的运行时类是Employee)
3.すべての属性と指定された属性に分割されます。特定の属性を取得し、従来の方法と比較して学習します:
[java] view plain copy print? Class c =Class.forName("Employee"); //创建此Class 对象所表示的类的一个新实例 Objecto = c.newInstance(); //调用了Employee的无参数构造方法.
4. 取得方法と構築方法については詳しく説明しません: キーワードを見てください:
このようにして、さまざまなコンテンツを取得できます。クラスを削除して逆コンパイルします。最初にコンパイルしてから実行する JAVA のような言語の場合、リフレクション メカニズムによりコードがより柔軟になり、オブジェクト指向の実装が容易になります。5.リフレクションと構成ファイルは、私たちのプログラムをより柔軟にしますそれをコピーしました。 .NET でのリフレクション + 構成ファイルの使用を見てください:
当時使用された構成ファイルは app.config ファイルで、内容は XML 形式で、リンク データベースの内容が埋められていました。たとえば、システム データベースを SQL Server から Oracle にアップグレードする場合、2 つの D レイヤーを作成し、構成ファイルの内容を変更するか、選択するための条件を追加するだけで、データベースを変更することが非常に簡単になります。それは大きな利便性をもたらします。 J もちろん、Java でも同じことが当てはまりますが、ここでの設定ファイルは属性ファイルと呼ばれます。内省を通じて中身を読んでください。このようにして、コードは修正されますが、構成ファイルの内容は変更できるため、コードがより柔軟になります。
要約すると、JAVA リフレクションを再学習して柔軟に使用すると、コードをより柔軟にすることができますが、欠点もあります。つまり、JAVA リフレクションを使用するとパフォーマンスが低下し、ソフトウェアの複雑さが増すため、次のことを行う必要があります。それは慎重に。