Такая ошибка:
public class Test {
public static void main(String[] args) {
readFile(); // здесь выдаётся ошибка, но если указать ниже в методе public STATIC void readFile() то ошибка уходит.
}
public void readFile() throws FileNotFoundException {
File file = new File("sdsd");
Scanner scanner = new Scanner(file);
}
}
}
Ошибка, как я понял в том, что метод не статический передаю в статический метод
Public static void main(String[] args)
Правильно ли я мыслю или нет?
Статический метод вызывается у класса, не статический метод вызывается у объекта.
Вам надо либо сделать readFile() статическим, либо в методе main() создать объект и у него вызвать метод readFile():
Test test = new Test();
test.readFile();
Дело не в том, что вы передаете нестатический метод в статический. Дело в том, что для использования нестатического метода необходимо использовать его на экземпляре класса. Статические же методы можно вызывать без экземпляра класса. Посмотрите на эти примеры:
public class AnotherClass {
static AnotherClass a = new AnotherClass(); //здесь мы создаем статическую переменную, иначе компилятор будет ругаться
public static void main(String[] args) {
AnotherClass b = new AnotherClass(); //здесь использование static не обязательно, так как переменная создается внутри метода
a.readFile();
b.readFile(); // оба варианта возможны
}
public void readFile() {
try {
File file = new File("sdsd");
Scanner scanner = new Scanner(file);
}
catch (FileNotFoundException e) {
}
} // если не использовать конструкцию try{} catch{}, то компилятор будет ругаться на неотловленное исключение. Ключевое слово throws же говорит о том, что внутри метода вручную бросается какое-то исключение с помощью throw, что у вас не происходит.
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости