Зачем указывать для не дефолтного и не статического (т.е. обычного) метода интерфейса пробрасываемое им исключение?
Ведь при реализации данного метода в каком-то классе, имплементирующем данный интерфейс мы вовсе не обязаны обеспечить проброс данного исключения.
Вот пример:
import java.io.IOException;
public interface MyCommand {
void exit() throws IOException;
}
public class Main implements MyCommand{
@Override
public void exit() {
System.out.println("Сработал метод exit()");
}
public static void main(String[] args) {
new Main().exit();
}
}
Интерфейс он не для Вас, он для вызывающей стороны и он показывает что вызывающая сторона должна обработать исключение, а бросите вы его или нет в конкретной реализации уже дело реализации.
В вашем примере при вызове исключение не требуется к обработке т.к. вы обращаетесь не к интерфейсу, а к объекту Main
и его методу exit
напрямую, приведите тип и все произойдет, вот полюбуйтесь:
import java.io.IOException;
public interface MyCommand {
void exit() throws IOException;
}
public class Main implements MyCommand{
@Override
public void exit() {
System.out.println("Сработал метод exit()");
}
public static void main(String[] args) {
Main m = new Main();
// не требует обработки т.к. метод Main.exit не имеет исключения в сигнатуре
m.exit();
MyCommand c = (MyCommand) m;
// требует обработки т.к. метод MyCommand.exit имеет исключение в сигнатуре
c.exit();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пытаюсь сделать так, чтобы при нажатии на enter строка не переносилась, а при зажатом shift переносиласьСделал boolean переменную, отвечающую за зажатый...
Суть задачи: Получить из коллекции поток (Stream)Получить из потока коллекцию всех пользователей, имена которых не содержат чисел, вывести содержимое...
Подскажите какие-нибудь простые но эффективные технологии для считывания содержимого *STL файла, обработки этого содержимого и вывода на экран...
Как настроить H2 в Spring Boot для постоянного хранения данных?