Skip to content

Latest commit

 

History

History
40 lines (31 loc) · 1.86 KB

E11.org

File metadata and controls

40 lines (31 loc) · 1.86 KB

E11: Parametrisk polymorfism och typsäkerhet

Typsäkerhet avser att ett värde alltid används på tillåtet sätt, t.ex. att en bit minne som råkar hålla en baseballspelare med ett heltal för skostorlek på bytes 8–11 används på detta sätt. C är inte ett typsäkert språk vilket tillåter oss att t.ex. spara strängen "Hej" på skostorlekens plats, och sedan läsa dessa fyra bytes som en (abnorm) sko. Java är ett typsäkert språk, och priset man betalar för detta är kontroller under programmets körning som orsakar undantag om en operation skulle leda till ett typfel.

Ponera en lista i Java där elementpekarna är av typen Object. En sådan lista kan innehålla vilken data som helst, men vanligt är att man är intresserad av en lista av basebollspelare etc.

Javas stöd för parametrisk polymorfism (även kallat generics) tillåter oss att skapa datastrukturer parametriserade över typer; parametrar vilka måste instantieras vid användande av strukturerna. Javas standardbibliotek formligen kryllar av klasser med typparametrar. Typparametrarna tillåter oss att uttrycka i kod att “detta är en lista av hermeliner” vilket medger möjligheten att signalera kompileringsfel om man försöker smyga in katt ibland hermelinerna.

Visa att du förstår konceptet parametrisk polymorfism och hur det kan användas för att flytta fel från körning (undantag) till kompilering (kompileringsfel).


Report a bug on this achievement? Please place an issue on GitHub.