0

私のコードには、オブジェクトと整数を保持するネストされたクラスがあります。これは、サブリスト メソッドの開始位置と終了位置をマークするためのものです。

コードは、オブジェクトと整数が値を確立するまで実行されます。デバッガーでこれを確認しました。

次に、次の行が呼び出さListLoc<E> startNode= new ListLoc<E>(start, startElement);れ、それが例外を発生させます。

クラスはすでに次のように定義されています

 private class ListLoc<E>{
    public Chunk<E> node;
    public int index;

    /* This object is created to hold a chunk and index location.  Two
     * objects will be created for the start and end locations for 
     * creating a sublist
     */
    public ListLoc(Chunk<E> node, int index){
        this.node= node;
        this.index= index;
    }
}

奇妙なことに、コードのこの部分は、ローカルの startNode をグローバル変数に置き換える前は問題なく実行されていました。その考えはうまくいかなかったので、変数を元に戻したところ、この例外が発生しました。

クラスパスまたは実行に変更を加えていません。これが発生するのはデバッガーのみです

編集:スタックトレースを追加

ClassNotFoundException(Throwable).(String, Throwable) 行: 217
ClassNotFoundException(Exception).(String, Throwable) 行: 利用不可 ClassNotFoundException.(String) 行: 利用不可
URLClassLoader$1.run() 行: 利用不可
AccessController.doPrivileged( PrivilegedExceptionAction, AccessControlContext) 行: 利用不可 [ネイティブメソッド]
Launcher$ExtClassLoader(URLClassLoader).findClass(String) 行: 利用不可
Launcher$ExtClassLoader.findClass(String) 行: 利用不可
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) 行: 利用不可 Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) 行: 利用不可 Launcher$AppClassLoader.loadClass(String, boolean) 行: 利用不可
Launcher$AppClassLoader(ClassLoader).loadClass(String) 行: 利用不可

私の目には、例外をトリガーするのはclassLoaderです。

4

1 に答える 1

2

例外が何であるかを明確にしていただけると助かりますが、E の ClassNotFound を取得していると推測しています。

あなたの教授はジェネリックの概念をまだ明確にしていないようです。一般的なデータ構造とは何かを調べることをお勧めします。E が定義されていない理由と、それらのリストを作成しようとしている理由を探すことをお勧めします。

次のリンクは、構文とその背後にある概念を明確にするのに役立つと思います: http://download.oracle.com/javase/tutorial/extra/generics/index.html

特に次のセクション: http://download.oracle.com/javase/tutorial/extra/generics/simple.html

于 2010-10-21T20:42:18.290 に答える