Мне не удалось найти способ предоставить пустой (не op) способ завершить блок catch в следующем коде Scala:В Scala 2.10 или новее, как один «пуст» блокирует блокировку
var autoCloseables: List[AutoCloseable] = List()
... //some code that fills the list with various java.sql.* instances; Connection, Statement, ResultSet
autoCloseables.map(try {_.close} catch {case se: SQLException => NoOp})
Я попытался заменить «NoOp
» с «()
», «Unit
», «None
», «se.getMessage()
» и т.д. Я продолжаю получать сообщение об ошибке в Eclipse, указав различные формы «типа несоответствия, найдено : Unit, required: AutoCloseable =>? ".
Я также попытался изменить окончательную линию ниже, но по-прежнему получать такое же предупреждение, как и выше:
autoCloseables.map(try {_.close} catch {case _: Throwable => })
Любые конкретные указания по этому вопросу будет весьма признателен. И я знаю о библиотеке ARM. На данный момент, пожалуйста, предположите, что я не могу использовать его и нуждаюсь в резолюции, сформулированной в этой конкретной проблеме. Спасибо.
Возможно ли, что ошибка была вызвана использованием 'map' вместо' foreach'? То есть, «карта» изо всех сил пыталась найти тип члена для нового списка. –
Когда я изменил его на foreach, ошибка осталась. Это не делает ваши предположения неверными. Это просто, что foreach имел ту же проблему, что и карта. Ответ Блейка, совершенно очевидный, увидев его, был тем, что мне нужно. – chaotic3quilibrium