Я думал, что я разумно понял использование пакетов, но при попытке использовать метод из импортированного пакета я испытываю якобы тривиальную проблему.Пакеты Java - Импорт против явного включения
У меня есть три файла в следующей структуре каталогов:
- Tester.java
- approach1 \ Approach.java
- approach2 \ Approach.java
Их код выглядит следующим образом :
Tester.java
import approach1.Approach;
public class Tester {
public static void main(String[] args)
{
approach1.Approach.sharedMethod("TEXT");
sharedMethod("TEXT");
}
}
approach1 \ Approach.java
package approach1;
public class Approach {
public static void sharedMethod(String approachText)
{
System.out.println("Approach Text: " + approachText);
}
}
approach2 \ Approach.java
package approach2;
public class Approach {
public static void sharedMethod(String approachText) { }
}
Как вы, вероятно, можете догадаться, я пытаюсь вызвать различные ответы различные подходы, основанные на том, какой пакет/класс импортируется. Проблема, с которой я сталкиваюсь, находится в пределах Tester.java. Первая, явная строка работает нормально, а вторая импортированная строка (sharedMethod («TEXT»)) выдает ошибку «Метод sharedMethod (String) не определен для типа Tester«. Я не понимаю, как я импортировал один из пакетов, поэтому метод должен быть видимым.
Любое разъяснение было бы полезным, поскольку я - Java newb. Благодаря!
Нестатический импорт импортирует классы, а не методы.Вы все равно должны указывать класс при вызове метода: 'Approach.sharedMethod (" TEXT ");' –