我想在JAR文件中引用类Bag
,但Eclipse告诉我Bag cannot be resolved to a type
。我已将Bag
定义的JAR添加到项目的类路径中,但错误仍然存在。我做错了什么?
答案 0 :(得分:2)
我认为你不能这样做,因为algs4.jar中的Bag类在默认包中。 在J2SE 1.4之前,我们仍然可以使用如下语法从默认包中导入类:
import Unfinished;
但是从J2SE 1.5开始,不再允许这样做。因此,如果我们想要从打包的类中访问默认包类,则需要将默认包类移动到它自己的包中。请阅读此处了解更多详细说明:
How to access java-classes in the default-package?
您可以选择一些选项:
通过反射或其他一些间接方法访问该类。但这有点难,就像这样:
Class fooClass = Class.forName(" FooBar"); 方法fooMethod = fooClass.getMethod(" fooMethod",new Class [] {String.class});
String fooReturned = fooMethod.invoke(fooClass.newInstance(),new String("我做了"));
如果您拥有该jar库的源代码,则需要将其放入正确的包中并将其作为新的jar库重新包装。
答案 1 :(得分:0)
您可能需要完全限定Bag类,或者导入它。