Стиль кодирования: вызов функции со значением null - PullRequest
0 голосов
/ 31 мая 2018

Например, класс Java java.awt.image.Raster имеет несколько перегруженных методов, например,

double[] getPixel(int x, int y, double[] dArray)
float[] getPixel(int x, int y, float[] fArray)
int[] getPixel(int x, int y, int[] iArray)

Разрешено вызывать метод с null в качестве массива, но как это сделать правильно в Kotlin?

val pixel = raster.getPixel(1, 2, null)

терпит неудачу из-за неоднозначности, а

val pixel = raster.getPixel(1, 2, null as IntArray)

выдает предупреждение, что «Это приведение никогда не может быть успешным».

Есть ли способ вызвать функцию, чтобы онаполностью радует компилятор?

1 Ответ

0 голосов
/ 31 мая 2018

«это приведение никогда не может быть успешным» относится к тому факту, что IntArray не является обнуляемым типом, и поэтому попытка привести null к IntArray всегда будет неудачной.

Поскольку ссылочные типы java всегда могут быть нулевыми,Я бы ожидал, что kotlin будет рассматривать это int[] как IntArray? (по крайней мере, в отсутствие аннотации @Nonnull), и поэтому null as IntArray? - это то, что вы хотите.

например

val pixel = raster.getPixel(1, 2, null as IntArray?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...