Size: a a a

2020 September 16

D

Dima in pro.jvm
Гуглить project amber pattern matching
источник

D

Dima in pro.jvm
Там отличные примеры
источник

SA

Sergey Alaev in pro.jvm
Evgeniy ♎️
я так и не понял зачем sealed классы(..зачем ограничивать возможные наследования?
типо что сделать библиотечку совсем чёрным ящиком
ADT еще. Модель данных без sealed иерархий - это как модель с классами, в которые можно добавлять новые поля в рантайме.
источник

D

Dima in pro.jvm
var result = switch (color) {
case BiColor bc -> 0x1;
case TriColor tc -> 0x2;
}
источник

D

Dima in pro.jvm
sealed interface Color permits BiColor, TriColor { }

record
BiColor(int r, int g, int b) implements Color {}
record
TriColor(int r, int g, int b) implements Color {}
источник

I

Igor in pro.jvm
Dima
var result = switch (color) {
case BiColor bc -> 0x1;
case TriColor tc -> 0x2;
}
да это же enum
источник

D

Dima in pro.jvm
ADT
источник

E

Evgeniy ♎️ in pro.jvm
я просто не в курсе что патмат - это сокращение от ПАТтерн МАТчин
источник

D

Dima in pro.jvm
И компилятор проверит, что в свитче все ветки покрыты
источник

E

Evgeniy ♎️ in pro.jvm
а если мне надо не все?)
источник

D

Dima in pro.jvm
Evgeniy ♎️
а если мне надо не все?)
Не использовать силд интерфейсы и классы
источник

D

Dima in pro.jvm
Свитч для инстансоф у вас останется
источник

ZM

ZLoyer Matveev in pro.jvm
Evgeniy ♎️
а если мне надо не все?)
либо модель кривая, либо шанс на рантайм ошибку
источник

D

Dima in pro.jvm
Просто пока его не добавили
источник

E

Evgeniy ♎️ in pro.jvm
ануок
источник

E

Evgeniy ♎️ in pro.jvm
это единственный кейс?
источник

E

Evgeniy ♎️ in pro.jvm
или ещё какие-то идеи?
источник

ZM

ZLoyer Matveev in pro.jvm
Igor
да это же enum
разве что растовый енум
источник

D

Dima in pro.jvm
Evgeniy ♎️
или ещё какие-то идеи?
Погугли, что я написал выше
источник

D

Dima in pro.jvm
Гоетц много примеров давал
источник