反射の3つの作成方法

6533 ワード

すべてFooをクラス名として例を挙げます
インスタンスオブジェクトを表す方法:
クラス名表示名=newクラス名()
///Fooのインスタンスオブジェクトの表示方法
 
  Foo foo1 = new Foo();

いずれのクラスもClassのインスタンスオブジェクトです.このインスタンスオブジェクトには3つの表現があります.
いずれのクラスにも暗黙の静的メンバー変数classがあります.
1つ目の表現:
 
Class c1=Foo.class;

注意Classは大文字C
2つ目の表現:クラスのオブジェクトがgetClassメソッドを介していることが分かった
 
Class c2 = foo1.getClass();
//c1 ,c2    Foo     (class type)

第三中表現:
 
   
 
Class c3=null;
try
{
    c3=Class.forName("Foo     ");
}
catch (Exception e)
{
    e.printStackTrace();
}
//    newInstance    Foo     
try
{
    Foo foo=(Foo)c1.newInstance();
//(Foo)Foo Foo   
    foo.print();
}catch (Exception e){e.printStackTrace();
}
 
   
  Foo      Foo    
    newInstance()         
  newInstance       :       
        。        class     forName()  
             (java api    )
 
   
     
 
   
 
try{
Class c=class.forName(args[0]);
       =(  )c.newInstance();
   .  ();
}catch(Exception e){e.printStrckTrace}