Koprodukt v Javě

cppwhizz

Koprodukt v Javě
« kdy: 17. 08. 2017, 21:03:09 »
Ahoj, umí mi někdo poradit, jak udělat koprodukt v Javě? I bez Googlu vím, že to nejde, potřeboval bych radu, jak to co nejelegantněji obejít. Pro upřesnění - potřebuju něco jako std::variant, ale rekurzivní. (Předělávám aplikaci z iOS na Android, Swift takové typy má, ale do Javy to isomorfně nejde.)


ffjzdgh

Re:Koprodukt v Javě
« Odpověď #1 kdy: 17. 08. 2017, 21:39:32 »
Jedine snad tridu s memberama pro kazdy typ
A setter co posefuje mazani a nastavovani.
Pamet se neusetri ale jako nahrada ok.

Lemming

Re:Koprodukt v Javě
« Odpověď #2 kdy: 17. 08. 2017, 22:47:47 »
Pro určité případy může být řešení kdy každý z možných ukládaných typů implementuje nějaký pro ten účel vytvořený interface. Pak proměnnou nadefinuješ že má typ toho interface a je to.

Aoidhghean

Re:Koprodukt v Javě
« Odpověď #3 kdy: 18. 08. 2017, 00:41:23 »
Citace od: Lemming kdy 17. 08. 2017, 22:47:47
Pro určité případy může být řešení kdy každý z možných ukládaných typů implementuje nějaký pro ten účel vytvořený interface. Pak proměnnou nadefinuješ že má typ toho interface a je to.
Tak tak, pokud nelze použít nějaký rozumný jazyk, tak je toto nejlepší řešení.

soyo

Re:Koprodukt v Javě
« Odpověď #4 kdy: 18. 08. 2017, 07:17:48 »
To znie, ako visitor pattern.


Aoidhghean

Re:Koprodukt v Javě
« Odpověď #5 kdy: 18. 08. 2017, 09:26:42 »
Citace od: soyo kdy 18. 08. 2017, 07:17:48
To znie, ako visitor pattern.
Součtový typ a visitor? To chce hodně velkou fantazii.

Re:Koprodukt v Javě
« Odpověď #6 kdy: 18. 08. 2017, 11:51:42 »
Zkusil bych Kotlin, zvlášť jestli to je pro android.

Honza

Re:Koprodukt v Javě
« Odpověď #7 kdy: 18. 08. 2017, 12:08:01 »
Citace od: Aoidhghean kdy 18. 08. 2017, 09:26:42
Citace od: soyo kdy 18. 08. 2017, 07:17:48
To znie, ako visitor pattern.
Součtový typ a visitor? To chce hodně velkou fantazii.
Ani ne, pokud člověk zváží účel toho snažení...

Re:Koprodukt v Javě
« Odpověď #8 kdy: 18. 08. 2017, 12:25:54 »
Citace od: uetoyo kdy 18. 08. 2017, 11:51:42
Zkusil bych Kotlin, zvlášť jestli to je pro android.
Otázkou ale je jak se tam implementuje ten koproduct. Kotlin nemznám, co jsem trochu vygooglil, tak podobně jako ve Scale přes sealed class?

Re:Koprodukt v Javě
« Odpověď #9 kdy: 18. 08. 2017, 12:27:20 »
Citace od: Kamil Podlešák kdy 18. 08. 2017, 12:25:54
koproduct
Koukám, cizí termity a z matematické abstrakce je hovnovod...

CT

Re:Koprodukt v Javě
« Odpověď #10 kdy: 18. 08. 2017, 12:35:21 »
Citace od: Kamil Podlešák kdy 18. 08. 2017, 12:27:20
Citace od: Kamil Podlešák kdy 18. 08. 2017, 12:25:54
koproduct
Koukám, cizí termity a z matematické abstrakce je hovnovod...
Koprodukt je pojem z teorie kategorií a zde přesně sedí.

v

Re:Koprodukt v Javě
« Odpověď #11 kdy: 18. 08. 2017, 12:50:38 »
Citace od: Aoidhghean kdy 18. 08. 2017, 09:26:42
Citace od: soyo kdy 18. 08. 2017, 07:17:48
To znie, ako visitor pattern.
Součtový typ a visitor? To chce hodně velkou fantazii.
zas tak moc ne, viz ten variant z c++

Citace od: CT kdy 18. 08. 2017, 12:35:21
Citace od: Kamil Podlešák kdy 18. 08. 2017, 12:27:20
Citace od: Kamil Podlešák kdy 18. 08. 2017, 12:25:54
koproduct
Koukám, cizí termity a z matematické abstrakce je hovnovod...
Koprodukt je pojem z teorie kategorií a zde přesně sedí.
copro-duct ;)