Ich erhalte hier einen Fehler:
%Vor% Wie kann ich diese 1 in ein Integer-Objekt in Scala konvertieren?
Mein Ziel ist es, es an ein Array[Int with Object]
zu übergeben.
Es zeigt derzeit den Fehler an:
BEARBEITEN
Ich habe diesen Fehler, weil ich einen android ArrayAdapter
verwende. von scala, und deshalb:
es wirft mir diesen Fehler:
%Vor% Also muss ich T
durch T <: Object
in class ImageAdapter[T <: Object](ctx: ...
Int
ist ein Scalatyp, der in der Regel dem int
von Java entspricht, bei der Boxierung jedoch auf java.lang.Integer
abgebildet wird. Ob es verpackt ist oder nicht, ist meist in Scala transparent.
In jedem Fall ist Int
definitiv kein Untertyp von java.lang.Object
. Tatsächlich ist Int
ein Untertyp von AnyVal
, der kein Untertyp von java.lang.Object
ist. Daher ist Int with Object
ziemlich unsinnig, da Sie keinen konkreten Typ haben können, der sowohl ein Int
als auch ein java.lang.Object
ist.
Ich denke, was du meintest, ist eher etwas wie:
%Vor%Oder eher idomatisch:
%Vor% Natürlich kompiliert nichts davon, aber Sie können das Boxen des Int
-Werts erzwingen, indem Sie auf AnyRef
:
Anders als im allgemeinen Fall ist das Casting von AnyVal
auf AnyRef
immer sicher und erzwingt das Boxen.
Sie können auch die spezifischere Funktion Int.box
verwenden: