For example, FastUtil\'s IntArrayList
has a push
method that accepts both int
(primitive) and Integer
(boxed), but Kotlin
Consider these methods in Java:
void f(int x) { }
void f(Integer y) { }
In Kotlin, they are seen as
f(x: Int)
f(x: Int!)
The second method has a parameter of platform type, meaning it might be nullable, corresponding to Integer
.
First one can be simply called with Kotlin Int
passed:
f(5) // calls f(int x)
To call the second one, you can cast the argument to nullable Int?
, thus selecting the overload:
f(5 as Int?) // calls f(Integer y)