注記、反射、ORM

2287 ワード

一、注釈と注釈
注釈と注釈は異なり、主に以下の4つの面に現れている:1、定義が異なる:注釈:英名はAnnotationであり、JDK 5.0以降のバージョンで導入された特性である.クラス、インタフェース、列挙と同じ階層でjavaのタイプになります.注記------メタデータは、データを記述するデータです.したがって,注釈はソースコードのメタデータであるといえる.注釈:ソースコードを紹介、評議または説明する文字です.2、作用の違い:注釈はJavaコンパイラが理解できる部分で、コンパイラに見せたものです.jvmの要素情報は、パケット、クラス、フィールド、メソッド、ローカル変数、メソッドパラメータなどの要素情報をタグすることによって伝えられます.注記は、プログラマーがソースコードについて記憶したり、ヒントを与えたりすることです.開発者にこのコードの論理、説明、特徴などの内容を教えることができ、コードに対して解釈、説明の役割を果たす.3、使用範囲が異なる:注釈、コードコンパイルに参加し、@で始まる、ツールと一緒に使用する.位置、文法、内容には一定の制限があります.コメントは、任意の場所に内容を記入でき、コードに影響はありません.4、運行過程が違う:注釈、運行中にJVMはそれを読み取り、相応のデータに対する操作を行い、プログラマーに被標要素の注釈を遣わします.コメント、コンパイラに無視されます.
二、注釈の分類
注記には、組み込み注記、メタ注記、カスタム注記が含まれます.内蔵注記:Javaが持参したもの、例えば@Override、@Deprescated、@SuppressWarnings.メタ注記:他の注記を注記します.@Target:注釈を記述するための使用範囲、すなわち、記述された注釈がどこで使用できるかを記述する.@Retention::注釈のライフサイクルを記述するために注釈情報を保存するレベルを示します.@interfaceで注釈をカスタマイズします.
@SuppressWarnings("all")
public class MyTest{
    @MyAnnotation();
    public void MyTest(){}
    }
@Target(value={ElementType.METHOD,ElementType.TYPE,ElementType.FIELD})//   
@Retention(RetentionPolicy.RUNTIME)//     
@interface MyAnnotation{
    String name ()  default "";
    int age ()  default 0;
     int id () default -1;
     String schools () default{"    "}
}


三、反射
クラス能力を解析できるプログラムを反射と呼ぶ.反射メカニズムは、(1)実行時にクラスを分析する能力;(2)実行時にオブジェクトを表示する;(3)汎用的な配列操作コードを実現する;(4)Methodオブジェクトを利用する.反射メカニズムの特徴:利点:動的にオブジェクトを作成し、コンパイルすることができ、柔軟性を体現することができる.欠点:パフォーマンスに影響します.
  class    :
1、      class:
person.getClass();
2、  forName:  +  
Class.forName("MyPackeage0602.Student")
3、          class  :
Student.class;

例反射機構による操作クラス
public class Test{
public static void main (String [] args){
     Class > ca=Class.forName("MyPackage0602.User");
     User user =(User) c1.newInstance();
     //      
     Method   method=c1.getDeclaredMethod("setName",String.class);
      method.invoke(user,"  ");
   System.out.println(user.getName());
//    
    Field field=c1.getDeclaredField("name");
    field.setAccessible(true);
    field.set(user,"   ")
System.out.println(user.getName());
}
};


ORM
ORM(Object Relationship Mapping)オブジェクト関係マッピング.クラスとテーブル構造対応属性とフィールド対応オブジェクトとレコード対応