2017-11-04 3 views
0

私は勉強していましたが、時々の依存関係注入を行ってエラーが発生したため、Javaの基礎を取り戻しました。だから、私のコードの下のチャンクの簡単な要点は、クラス間で独立していることです。以下のコードに関しては、コードを実行しようとすると常にClassNotFoundExceptionのためにスローされます&は実行を終了します。これで私を助けてください。Java newInstance( "Sample")がclassNotFoundExceptionを返さないようにする場合

//Main class 

class Main{ 

public static void main(String []args){ 

try{ 

    Car c = carFactory.getCar("Axio"); 
    c.print(); 

    }catch(Exception e){ 
    System.out.println(e); 
    } 
} 
} 

//Car Interface 

public interface Car{ 
public void print(); 
} 

//Car Interface implementation class 

class Axio implements Car{ 

public void print(){ 
    System.out.println("Axio car is called..."); 
} 

} 

//Car Factory class 

class carFactory{ 

public static Car getCar(String carName)throws Exception{ 

    return (Car)Class.forName(carName).newInstance(); 

} 

} 
+0

[mcve]を読んで、それに応じて質問を強化してください。また、例外名についていくつかの調査を行います。ほとんどの場合、パッケージ名を忘れてしまった可能性があります。そうしないと、クラスパス設定が乱れてしまいます。 – GhostCat

答えて

0

クラスの完全修飾名をClass.forName()に入力してください。正しく動作するはずです。

+0

私のためにコードを書き直してください。 –

+1

あなたは正しいです、クラスには –

+0

に割り当てられたパッケージが続かなければなりません。コードはうまくいくように見えるだけで、パッケージ名も使う必要があります。すべてのクラスのパッケージ名は何ですか? –

関連する問題