我正在尝试从变量中实例化一个类,并编写了一些测试代码。但是,不幸的是,它无法正常工作。这是代码:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
不幸的是,在第二行,它与java.lang.ClassNotFoundException
崩溃。
你能告诉我我做错了吗?
答案 0 :(得分:7)
CommandDownloadHttp是该类的完整名称,即它没有包吗?如果 有包,请包含:
Class.forName("foo.bar.CommandDownloadHttp");
(我假设你有更好的理由在实际代码中执行此操作,顺便说一下 - 显然在这种情况下你实际上并不需要通过反射获取类:)
答案 1 :(得分:3)
你的班级在一个包里吗?这个包是进口的吗?所以它在第1行中有效。但是你需要Class.forName中的完全限定名(“my.package.to.CommandDownloadHttp”)。