Я работаю над проектом с Java 8 и обнаружил одну ситуацию, которую я не могу понять.
У меня такой код:
void deleteEntity(Node node) throws SomeException {
for (ChildNode child: node.getChildren()) {
deleteChild(child);
}
}
void deleteChild(Object child) throws SomeException {
//some code
}
Этот код работает нормально, но я могу переписать его с помощью ссылки на метод:
void deleteEntity(Node node) throws SomeException {
node.getChildren().forEach(this::deleteChild);
}
И этот код не компилируется, давая ошибку Incompatible thrown types *SomeException* in method reference
.
И IDEA дал мне ошибку unhandled exception
.
Итак, мой вопрос, почему? Почему код компилируется для каждого цикла и не компилируется с лямбдой?