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 »
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 »
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 »
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 »
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 »
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 »
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 »
To znie, ako visitor pattern.
Součtový typ a visitor? To chce hodně velkou fantazii.
zas tak moc ne, viz ten variant z c++

koproduct
Koukám, cizí termity a z matematické abstrakce je hovnovod...
Koprodukt je pojem z teorie kategorií a zde přesně sedí.
copro-duct ;)