Итак, у меня есть два java-файла (с одним открытым классом в каждом) внутри одного и того же пакета, сохраненных в той же папке. Иерархия папок отражает имя пакета. Теперь, внутри одного из классов, я хотел бы вызвать метод из другого класса. Насколько мне известно, это можно сделать, позвонив по телефону: someClass.someMethod();
. Когда я это делаю, файл не соответствует. Это дает сообщение об ошибке, в котором говорится, что он не может найти метод. * Я проверил наличие опечаток, но их нет. Я также попытался помочь программе, импортировав класс с import somePackage.someClass
, но без какого-либо результата. Единственный способ заставить его работать - либо удалить пакет из обоих файлов, либо скопировать метод в другой файл, ни один из которых не нужен в долгосрочной перспективе.Вызов метода из другого класса в Java не работает?
Вы знаете, что может вызвать ошибку и как ее можно решить? Большое спасибо!
ошибка выглядит следующим образом:
TestBit.java:7: error: cannot find symbol boolean value = someClass.someMethod(arg1, arg2); ^ symbol: variable someClass location: class otherClass 1 error"
EDIT:
Вот код:
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 не может найти файл.
Как вы определили someMethod своего someclass? – SMA
Пожалуйста, добавьте ваш код, и это сложно решить без проблем. –
Сначала вы должны иметь экземпляр 'someClass'. – QBrute