2009-02-19 61 views
1

我想从变量实例化一个类,并写了一些测试代码。但不幸的是,它不起作用。这里是代码:为什么Class.forName()不适合我?

Object co1 = new CommandDownloadHttp(); 
Class cc1 = Class.forName("CommandDownloadHttp"); 
Object co = cc1.newInstance(); 

不幸的是,在第二行它崩溃与java.lang.ClassNotFoundException

你能告诉我我做错了什么吗?

回答

7

Is CommandDownloadHttp full该类的名称,即它没有包?如果确实有一个包,包括:

Class.forName("foo.bar.CommandDownloadHttp"); 

(我假设有一个为你在真正的代码这样做,顺便说一句更好的理由 - 显然在这种情况下,你实际上并不需要取通过反思类:)

+0

替换命名空间W /包(以我为中心)。我意识到他们是一个相同的概念。 – basszero 2009-02-19 12:05:00

+0

谢谢! :) 是的,这些行仅是示例。在现实生活中,名字将在执行时被构建。 – 2009-02-19 12:06:39

2

你的课程是在一个包?这个包是否被导入?所以它在第一行工作。但是你需要Class.forName(“my.package.to.CommandDownloadHttp”)中的全限定名。