interface Transformer<OUT, IN> {
OUT transform(IN in);
}
Но в некоторых случаях допускается возвращать null:
* @param transformer The transformer to apply to values. May return {@code null}, in which case the provider will have no value.
* @since 4.3
*/
<S> Provider<S> map(Transformer<? extends S, ? super T> transformer);
При вызове такого из Kotlin возникает проблема: Kotlin видит nonnull и запрещает возвращать null. Есть какой-нибудь способ сказать компилятору «да, знаю что там nonnull, но вот в этом месте нужно игнорировать»?
Очень интересный подход к проектированию. :) К счастью, такого в Котлине нет, насколько я знаю. Даже если кастить явно (e.g. return null as String) - компилятор генерирует проверки и упадёт в рантайме.
можно ошибки компиляции подавлять =) только никому не говорите
Обсуждают сегодня