转储java中类访问的问题

时间:2011-03-29 14:19:06

标签: java

我正在为java库编写包装器。假设ClassA和ClassB(在默认包中)。在ClassA中我们有:

ClassB.DoSomething();

javac抛出错误:

ClassA.java:...: cannot find symbol
symbol  : variable ClassB

问题出在哪里?

提前谢谢!!!

2 个答案:

答案 0 :(得分:1)

类路径上的当前目录是什么?它应该是,但如果设置不正确,那么javac可能会感到困惑。

如果ClassA和ClassB都在默认包中,请尝试使用javac -cp . ClassA.java进行编译,看看是否有效。

答案 1 :(得分:0)

这取决于您希望如何访问您的方法。例如,您可以使用

之类的内容静态访问它
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等。