Ve škole byla v testu otázka: Vysvětlete proč Java neumožnuje ukládání primitivních typů do kolekcí (přímo, bez obalování). Co byste odpoveděli?
Protoze nededi od Object.
Protože učitel nikdy neslyšel o trove4j. V otázce mělo být "do kolecí objektů".
O kterou skolu jde?
Citace od: borekz kdy 13. 06. 2018, 08:02:04
Protože učitel nikdy neslyšel o trove4j. V otázce mělo být "do kolecí objektů".
Předpokládám, že učitel měl na mysli Java v rozsahu JDK API. A buď to špatně zapsal (jeho chyba, špatně položená otázka), nebo to tazatel špatně interpretoval...
Language design decision. Implementace kolekci je napriklad mnohem jednodussi kdyz ukladam jen reference s konstantni velikosti nez primitiva jejichz velikost se muze lisit. Ale odpovedi muze byt vice spravnych. Tohle bych napsal ja
Jedna odpověď je, taková študácká, že to nedědí z Object, což kolekce vyžadují. Ta přesnější odpověď ale je, že to prostě Java neumožňuje, protože to prostě neumožňuje, protože to neumožňuje. Prostě to do ní nedali, jako spoustu dalších věcí.
Někdo se mě třeba ptal, jestli vím, proč tam je type erasure. Odpověď se čeká ta, že je to kvůli zpětné kompatibilitě, neumožňuje to bytecode. Ale přesná odpověď je, že to Java prostě jinak NEUMÍ!
Prostě Java a JVM má návrhové chyby a tohle jsou jedny z nich. Ale ve škole to raději neříkej, protože jestli je opravovatel blbec, tak se mu to nebude líbit.
Citace od: anonym kdy 13. 06. 2018, 10:12:29
Prostě Java a JVM má návrhové chyby a tohle jsou jedny z nich.
já bych to spíš nazval volbou (byť kontroverzní) než přímo chybou, ono to fakt hodně ulehčí
Citace od: v kdy 13. 06. 2018, 10:19:25
Citace od: anonym kdy 13. 06. 2018, 10:12:29
Prostě Java a JVM má návrhové chyby a tohle jsou jedny z nich.
já bych to spíš nazval volbou (byť kontroverzní) než přímo chybou, ono to fakt hodně ulehčí
Zalezi co ulehci... asi myslis implementaci standardnich kolekci, ne praci s tim, kdyz je potreba pak 3rd party kolekce, nebo si psat vlastni. :-)
Citace od: n kdy 13. 06. 2018, 11:33:43
Citace od: v kdy 13. 06. 2018, 10:19:25
Citace od: anonym kdy 13. 06. 2018, 10:12:29
Prostě Java a JVM má návrhové chyby a tohle jsou jedny z nich.
já bych to spíš nazval volbou (byť kontroverzní) než přímo chybou, ono to fakt hodně ulehčí
Zalezi co ulehci... asi myslis implementaci standardnich kolekci, ne praci s tim, kdyz je potreba pak 3rd party kolekce, nebo si psat vlastni. :-)
tříd, struktur, polí, co na daný jazyk pasuje, prostě element struktury je třeba reference[3], bez ohledu na velikost předchozích elementů, zarovnání na dané platformě apod.
rychlosti to moc nepřidá, to je pravda