1. java.lang.Class代表class or Interface;
    class : 基本class, array ,enum , primitive type , void
    interface : interface , annotation
    +isInterface():boolean
    +isArray():boolean
    

2.用obj.class or obj.getClass()可以得到Class物件, 是在建立.class檔案時放入的
   因此也可以用Class.forName("ming.MyClass");方式得到Class物件
   
3.Class物件訊息在建立.class檔案就已經儲存好,編譯時期檢查相對應的.class檔案,
  Runtime會將有被使用到的Class資訊Load入定義區,因此有.class不一定會在定義區內,就不能做成物件
  使用Class.forName("package.name");將Class註冊入定義區中,並且將此Class回傳
  ==>Class.forName("package.name").newInstance();就會回傳此物件
  ps.只能new無參數建構子,如果沒有此定義就會出錯,也可以使用myClass.getConstructor.newInstance(Object...)來彌補有參數建構子的不足

4.使用Class物件可以得到各式各樣類別的定義, Constructors, Fields, Methods, package, SuperClass等

arrow
arrow
    全站熱搜

    minglight 發表在 痞客邦 留言(0) 人氣()