Почему интерфейс обратного вызова Java расширен и не реализован в Scala - PullRequest
0 голосов
/ 16 января 2020

Я писал API производителя kafka с асинхронным методом. Итак, я использовал интерфейс обратного вызова для печати метаданных.

Код java:

private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....}

Scala код:

private class ProducerCallback(record: ProducerRecord[String, String]) extends Callback{...}

Почему в scala Обратный вызов расширен и не реализован?

1 Ответ

2 голосов
/ 17 января 2020

Почему в Scala Callback расширен и не реализован?

Различные языки. Очевидно, что дизайнеры языка Java и Scala сделали разные выборы в этом вопросе.

Почему?

Мне не удалось найти 1 четкого объяснения от дизайнеры Scala объяснили, почему они решили не копировать Java extends + implements различие. Однако, как общее замечание, они предпочитают чистый / сжатый синтаксис перед более подробным.

Ясно, что Scala «работает», не делая различий, и если язык не нуждается чтобы сделать различие, чистый / краткий подход не состоит в том, чтобы сделать это.

См. также: Почему Java / Scala использует расширяет / реализует ключевые слова?

(Почему Java делает различие? На самом деле это не имеет значения: это древняя история.)


1 - Либо ничего не сохранилось, либо мои навыки Google подвели меня. Если кто-нибудь найдет, пожалуйста, прокомментируйте ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...