2012-01-06 20 views
3

で例外が見つかりませんどこか間違ってください助けてください。 - Class.forName()はパッケージ修飾クラス名を取り、あなたがcom.Testパッケージ内にそれを宣言したのでクラスこんにちは、私はこのサイトから、次のコードを使用していたJavaリフレクション

package com.Test; 
    class A {} 

public class instance1 { 
     public static void main(String args[]) 
     { 
      try { 
      Class cls = Class.forName("A"); 
      System.out.println("gfsdga"); 
      boolean b1 
       = cls.isInstance(new Integer(37)); 
      System.out.println(b1); 
      boolean b2 = cls.isInstance(new A()); 
      System.out.println(b2); 
      } 
      catch (Throwable e) { 
      System.err.println(e); 
      } 
     } 
    } 
+3

以前の回答は正しいですが、パッケージ名はすべて小文字にする必要がありますが、追加する必要はありません。 Javaの規約であり、規約に従うことでコーディングの世界が少し明るくなります。 – pcalcao

+0

ありがとうpcalcao ...私は心に留めておきます – Maverick

答えて

11

クラスが実際にcom.Test.Aと呼ばれる: は、ここでは、コードです。 (com.Testもかなり奇妙なパッケージ名です。)

+0

あああああまりにも速かった....ありがとうジョン。はいジョン私はパッケージ名がかなり奇妙だと知っていますが、私は今Javaの反射を学んでいる – Maverick

3

代わりにClass.forName("com.Test.A")が必要です。

関連する問題