2010-10-21 62 views
0

在我的代碼中,我有一個嵌套類,它包含一個對象和一個整數。這是爲了標記子列表方法的開始和結束位置。調試ClassNotFoundException

該代碼執行到對象和整數已建立值的點。我已經在調試器中驗證了這一點。

下一行然後調用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的)(字符串,Throwable的)線:217
ClassNotFoundException的(異常)(字符串,Throwable的)行:不可用 ClassNotFoundException的(字符串)行:不可用
URLClassLoader的$ 1.run()行:不可用
AccessController.doPrivileged(的PrivilegedExceptionAction,AccessControlContext的)行:不可用[本機方法]
大號auncher $的ExtClassLoader(URLClassLoader的).findClass(字符串)行:不可用
啓動$ ExtClassLoader.findClass(字符串)行:不可用
啓動$的ExtClassLoader(ClassLoader的).loadClass(字符串,布爾)行:不可用 啓動$ AppClassLoader器(classloader).loadClass(字符串,布爾)行:不可用 啓動$ AppClassLoader.loadClass(字符串,布爾)行:不可用
啓動$ AppClassLoader器(classloader).loadClass(字符串)行:不可用

從它看起來對我來說,它是觸發異常的classLoader。

回答

2

這將有助於如果你能澄清例外的是什麼,但是,我猜測,你得到一個ClassNotFound的爲E.

它看起來像你的教授還沒有明確泛型的概念呢。我會建議看看通用數據結構是什麼。我會給的建議是尋找E爲什麼沒有定義,以及爲什麼你要創建它們的列表。

我認爲下面的鏈接可能有助於澄清的語法和它們背後的概念: http://download.oracle.com/javase/tutorial/extra/generics/index.html

特別是以下部分:http://download.oracle.com/javase/tutorial/extra/generics/simple.html

+0

作爲一位同事會說,Java沒有「真正的泛型」就像.NET一樣。所以你不能說「新E()」或類似的東西。 – StriplingWarrior 2010-10-21 20:50:19

+0

添加了堆棧跟蹤。事情是,我沒有試圖列出E,它只是一個開始和結束指針。該對象將被髮送到遍歷列表的循環,並將開始點和結束點之間的值複製到新列表中。 – Jason 2010-10-21 21:00:11

+0

@Jason:你正確的是ClassLoader觸發異常。但是,這是故意的行爲。在你的例子中,你正在創建一個使用泛型類型(E)的ListLoc對象。 – bogertron 2010-10-21 21:01:27

相關問題