@daMage

Зачем нужно импортировать классы в каждом файле?

Здравствуйте. Я совсем новичок в java и мне не понятен один моммент. Я использую драйвер JDBC для работы с бд, а тот в свою очередь, требует подключения своих библиотек в пакете com.mysql. У меня два файла, 1 - базовый класс App.java, второй класс реализующий работу с бд - DB.java. DB выполняет запрос и возвращает массив типа ResultSet. Это класс из пакета com.mysql. Так вот, я правильно понимаю, что в App.java должен быть подключен класс com.mysql.ResultSet или строчки в DB.java будет достаточно(компилятор ругается и утверждает обратное, но мне не ясно зачем импортировать еще раз, когда этот класс уже подключен в DB, а DB подключен в App)?
  • Вопрос задан
  • 2317 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vdem
Потому что когда Вы пишете в App.java
ResultSet users = DB.getUsers();
компилятор не будет знать, что за ResultSet здесь имеется в виду. Ему надо будет посмотреть в DB, в нем уже посмотреть в используемый класс из com.mysql. И так далее. Если же указать класс, то компилятору сразу понятно, что здесь вернется, какие исключения могут быть выкинуты. И программисту понятно.

P.S. Можете в DB.getUsers() (к примеру) преобразовывать ResultSet в массив, ну или в коллекцию. Имхо так даже правильнее будет, App как бы и не должен знать, откуда и как берутся данные.
Ответ написан
Мне кажется в классе App вы используете какую-либо часть библиотеки MySQL, поэтому и ругается. Так если DB возвращает ResultSet в App, то App без импорта библиотеки MySQL не знает тип ResultSet, т.к. его нет в базовых типах Java.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы