java中类访问的转储问题
我正在为java库编写包装器。假设ClassA和ClassB(在默认包中)。在ClassA中,我们有:java中类访问的转储问题,java,Java,我正在为java库编写包装器。假设ClassA和ClassB(在默认包中)。在ClassA中,我们有: ClassB.DoSomething(); javac抛出一个错误: ClassA.java:...: cannot find symbol symbol : variable ClassB 问题在哪里 提前谢谢你 当前目录是否在类路径上?应该是这样,但如果设置不正确,javac可能会感到困惑 如果ClassA和ClassB确实都在默认包中,请尝试使用javac-cp进行编译。java并
ClassB.DoSomething();
javac抛出一个错误:
ClassA.java:...: cannot find symbol
symbol : variable ClassB
问题在哪里
提前谢谢你 当前目录是否在类路径上?应该是这样,但如果设置不正确,javac可能会感到困惑
如果ClassA和ClassB确实都在默认包中,请尝试使用
javac-cp进行编译。java
并查看其是否有效。这取决于您希望如何访问您的方法。例如,您可以通过以下方式静态访问它
class ClassA {
//...
public void someMethod() {
ClassB.doSomething();
}
//...
}
class ClassB {
static public void doSomething() { /* ... */ }
}
或者需要一个ClassB
class ClassA {
//...
public void someMethod() {
ClassB b = new ClassB();
b.doSomething();
}
//...
}
class ClassB {
public void doSomething() { /* ... */ }
}
你的问题很模糊,所以我就到此为止
注意:记住Java是区分大小写的,这意味着
ClassB
!=classB
等。你导入了classB包吗?你确定你的意思是class
不是object吗?他们应该禁止Java中的默认包!B类是“公共B类”。它在默认包中,就像ClassA一样。我想我不需要导入它>>>他们应该禁止Java中的默认包所以,如果我把两个包都放在某个包中,并在顶部写上“package somepackage”,这会有所帮助吗?我想如果是静态错误,我们会看到不同的错误。类似于“非静态方法doSomething()无法从静态上下文引用”@Gnat,此时,一切都是纯粹的推测:)