Próbuję utworzyć klasę parametryczne z lateinit
non wartości pustych nieruchomości typu rodzajowego:Dlaczego ogólna właściwość typowana jest zerowa?
class Test<T> {
private lateinit var t : T
private lateinit var s : String
}
Ten ostatni jest dozwolone, ale były nie jest. Kompilator zwraca następujący błąd:
Error:(7, 11) ''lateinit'' modifier is not allowed on nullable properties
Ponieważ nie deklarują T?
, jestem zdezorientowany, dlaczego tak jest.
cera to, miałem zamiar pisać i odpowiadać na to pytanie sam. Nie znalazłem tego za pomocą prostego wyszukiwania; Proponuję, aby w tytule pytania znalazło się słowo "lateinit", ponieważ w pierwszej kolejności jest to przyczyną problemu. –