[英]Class.forName() and ClassNotFoundException
說我有以下兩節課:
public class MyClass {
public String getDescription() {
return "MyClass";
}
}
和
public class MyClassLoader {
public static void main (String[] argv) throws ClassNotFoundException {
Class.forName("MyClass");
System.out.println("MyClass class was successfully loaded");
}
}
如果這兩個類都在默認程序包中,則它將正常運行,加載該類,並且世界變得美好。 (如果我要刪除類MyClass
,我將得到一個ClassNotFoundException
,如預期的那樣。
但是,如果它們都在一個包中(假設它是Eclipse中的一個包),並且具有
package myClassTestPackage;
在這兩個聲明中,當我嘗試運行它時都會收到ClassNotFoundException
。
是什么導致此問題,如何解決? 這是我能夠重現在更大程序中遇到的錯誤的最簡單方法。
這是因為Class.forName()方法將完全限定的類名作為參數。
Parameters:
className - the fully qualified name of the desired class.
所以:
Class.forName("myClassTestPackage.MyClass");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.