Mam obiektu Java OldFashioned
który rozciąga Java 1.4 List
:Jak dodać obiekt do niezanalizowanej listy Java?
[Java]
class OldFashioned extends List { ... }
Oznacza to, OldFashioned
nie bierze żadnych parametrów typu. Muszę dodać do niego SomeObject
. W Javie nie ma problemu, ponieważ traktuje on jako obiekt List
1.4 jako List<Object>
1.5 i pozwala na dodanie do kolekcji dowolnej podklasy Object
. Ale Scala tego nie robi. Więc następny kod nie działa:
[Scala]
val oldFashioned = new OldFashioned()
oldFashioned.add(new SomeObject) // found: SomeObject; required: E
Oznacza to, Scala kompilator wymaga przekazać parametry typu do OldFashioned
że faktycznie nie bierze je:
[Scala]
var oldFashioned: OldFashioned[SomeObject] = null // OldFashioned does not take type parameters
Jak mogę go pokonać i dodać SomeObject
do OldFashined
?
Zabawnie, IDEA podkreśla "[a]" jako błąd, ale kompilator Scala nie skarży się, więc działa. Rozgrywki dla odpowiedzi zarówno twoich, jak i agilesteela. Dzięki! – ffriend
Już zacząłem się zastanawiać, dlaczego jedną z moich starych odpowiedzi było nagle kilka niespodzianek;) Dziękuję wam! – agilesteel