所以我在同一个文件夹中保存了两个java文件(每个文件中有一个公共类)。文件夹层次结构反映了包名称。现在,在其中一个类中,我想从另一个类调用一个方法。就我而言,可以通过致电:someClass.someMethod();
来完成。
当我这样做时,该文件不符合。它会产生一条错误消息,说它无法找到该方法。*我检查过拼写错误,但没有。我还试图通过导入import somePackage.someClass
的类来帮助该程序,但没有任何结果。我可以使它工作的唯一方法是从两个文件中删除包或将方法复制到另一个文件,从长远来看,这些都不是理想的。
您是否知道可能导致错误的原因以及如何解决? 非常感谢!
错误如下所示:
TestBit.java:7: error: cannot find symbol
boolean value = someClass.someMethod(arg1, arg2);
^
symbol: variable someClass
location: class otherClass
1 error"
编辑:
这是代码:
package uk.ac.prejava.ex1;
public class PackedLong{
public static boolean get(long packed, int position) {
long check = (packed>>>position)& 1;
return (check == 1);
}
}
和
package uk.ac.prejava.ex1;
public class TestBit {
public static void main(String[] args) {
long currentValue = Long.decode(args[0]);
int position = Integer.parseInt(args[1]);
boolean value =PackedLong.get(currentValue, position);
System.out.println(value);
} }
我想在第二课中调用PackedLong.get,但是当遵守javac时无法找到该文件。
答案 0 :(得分:1)
我假设你有以下包结构:
somePackage
SomeClass的
otherClass
这可能是错的。在编写代码时,您应该位于somePackage上方的目录中。因此,当您看到目录列表时,您应该只看到somePackage。现在,您必须使用以下代码编译该类:
javac somePackage/otherClass.java
希望有效。