Citace od: Filip Jirsák kdy 16. 08. 2017, 22:00:08V Javě šablony nejsou. Napište raději, jaký problém řešíte.
Citace od: Aoidhghean kdy 17. 08. 2017, 00:28:42Zcela zjevně jde o generika, není proč slovíčkařit.
Citace od: Aoidhghean kdy 17. 08. 2017, 00:28:42K věci: Java to neumí (má dost omezený typový systém) a nevím o tom, že by to bylo v plánu. Možná bych checknul Scalu.
Citace od: Ivan Nový kdy 17. 08. 2017, 07:10:45https://www.tutorialspoint.com/design_pattern/template_pattern.htm :-)
Citace od: Filip Jirsák kdy 17. 08. 2017, 06:53:58Citace od: Aoidhghean kdy 17. 08. 2017, 00:28:42Zcela zjevně jde o generika, není proč slovíčkařit.Generika jsou něco jiného, než šablony. Generika Java umí. Důvod ke slovíčkaření je ten, že můžeme poradit, jak řešit tazatelův problém – místo střílení od bokou, zda ,,to" Java umí nebo neumí, přičemž každý si pod ,,to" bude představovat něco jiného.Citace od: Aoidhghean kdy 17. 08. 2017, 00:28:42K věci: Java to neumí (má dost omezený typový systém) a nevím o tom, že by to bylo v plánu. Možná bych checknul Scalu.Asi tedy chápete, co ,,to" má být. Můžete to tedy napsat? Třeba někdo jiný dokáže navrhnout řešení, když bude vědět, jaký je vlastně problém.
template<template<typename> class T> ...
Citace od: perceptron kdy 17. 08. 2017, 09:01:35Map<String, List<JdbcTemplate>>
class A<T> {...}class B<T<_>,U> {T<U> x}
class StringMap<T> implements Map<String, T> {}
Citace od: Filip Jirsák kdy 17. 08. 2017, 12:16:46Já tam pořád ten rozdíl nevidím. Třeba tohle je podle mne šablona nad šablonou:Kód [Vybrat] Rozbalitclass StringMap<T> implements Map<String, T> {}
Citace od: Filip Jirsák kdy 17. 08. 2017, 08:31:23Citace od: Ivan Nový kdy 17. 08. 2017, 07:10:45https://www.tutorialspoint.com/design_pattern/template_pattern.htm :-)To je návrhový vzor šablona / template. To je něco jiného než template v C++ i než generiky v Javě. Dá se implementovat i bez C++ šablon i bez Java generik, jak je ostatně vidět na příkladech uvedených v odkazu.Návrhový vzor šablona se zřetězit (,,šablona nad šablonou") dá. Generika nad generikou se také udělat dá (alespoň s tím, co si pod ,,generika nad generikou" představím já). Takže jestli se dá v Javě udělat ,,šablona nad šablonou" se tu můžeme dohadovat do nekonečna, protože si každý může sám určit, co tím ,,šablona nad šablonou" myslí. A nebo tazatel napíše, co vlastně řeší za problém.
Citace od: Aoidhghean kdy 17. 08. 2017, 12:20:48Citace od: Filip Jirsák kdy 17. 08. 2017, 12:16:46Já tam pořád ten rozdíl nevidím. Třeba tohle je podle mne šablona nad šablonou:Kód [Vybrat] Rozbalitclass StringMap<T> implements Map<String, T> {}Není, protože T v mapě je už vázaná typová proměnná. Map je funkcí nad dvěma typy.
Citace od: Filip Jirsák kdy 17. 08. 2017, 13:14:44Citace od: Aoidhghean kdy 17. 08. 2017, 12:20:48Citace od: Filip Jirsák kdy 17. 08. 2017, 12:16:46Já tam pořád ten rozdíl nevidím. Třeba tohle je podle mne šablona nad šablonou:Kód [Vybrat] Rozbalitclass StringMap<T> implements Map<String, T> {}Není, protože T v mapě je už vázaná typová proměnná. Map je funkcí nad dvěma typy.A jak by to vypadalo, kdyby T nebyla vázaná typová proměnná? Jakou by to mělo funkci/význam? Jak by se to lišilo od stavu, kdy T je vázaná typová proměnná? Ideální by bylo ukázat to na nějakém konkrétním případu – mám tyhle tři třídy, chtěl bych udělat tohle, ale nemůžu, místo toho můžu jen zkopírovat kód.
class Fix<F> : F<Fix<F>> {...}