2012-02-28 34 views
0

クラスが後でコンパイルされたとしても、新しいクラスのCallingClassがまだ私のjarで動作するかどうかをテストします。NoSuchMethodErrorがloader.loadClass()の呼び出しによって呼び出されました。

私の場合、CallingClass.m1()は、Jarファイルに存在しないCalledClass.method()メソッドを呼び出します。コードの実行によりNoSuchMethodErrorが発生します。

CallingClassクラスをもう一度jarでテストするソリューションが必要ですが、実行の外側です。

私は

public class ResolvingClassLoader extends ClassLoader 
{ 
    public Class<?> loadClass(String name) throws ClassNotFoundException 
    { 
     return loadClass(name, true); 
    } 

    public static void main(String[] args) throws Exception 
    { 
     final ResolvingClassLoader loader = new ResolvingClassLoader(); 
     final String className = "CallingClass"; 
     loader.loadClass(className); 
    } 

} 

以下しようと、それは(すなわちリンク)クラスを解決するよう、NoSuchMethodErrorを発生させるのloadClassの呼び出しを期待してきました。そうではありません。 「初期の」NoSuchMethodErrorを生成する方法を知っていますか?

答えて

0

NoSuchMethodErrorは、存在しないメソッドが呼び出された場合にのみ生成されるため、メソッドを呼び出すだけで生成できます。

関連する問題