Stavo leggendo i documenti di Hacklang su Collections e ho trovato questa curiosa definizione [parafrasata leggermente]:
interface KeyedIterable<Tk, Tv> ...
interface ConstVector<+Tv> implements KeyedIterable<int, Tv> ...
Naturalmente, KeyedIterable
deve essere di sola lettura rispetto a Tv, e infatti è perché i suoi metodi non possono modificare il suo tipo. potrebbe essere specificato come covariante su almeno Tv
, ma non lo è.
Mi chiedevo quale impeto ci potesse essere per fare questo?
Modifica: ho letto la definizione errata, KeyedIterable
è in realtà definito come KeyedIterable<Tk, +Tv>
, quindi questa definizione ha perfettamente senso. Mi sto solo rendendo conto che non è tanto "dovrebbe o non dovrebbe", ma piuttosto "questo non è mai possibile".