Sto cercando di creare una classe parametrizzata con una proprietà lateinit
non annullabile del tipo generico:Perché una proprietà tipizzata generica non è valida?
class Test<T> {
private lateinit var t : T
private lateinit var s : String
}
Quest'ultimo è consentito, ma la prima non è. Il compilatore restituisce il seguente errore:
Error:(7, 11) ''lateinit'' modifier is not allowed on nullable properties
Dal momento che non ha dichiarato T?
, sono confuso sul motivo per cui questo è il caso.
Maledizione, mi stava per inviare e rispondere a questa domanda io stesso. Non l'ho trovato con una semplice ricerca; Suggerirei di includere "lateinit" nel titolo della domanda, dal momento che questo è l'innesco per il tuo problema in primo luogo. –