Можно ли передать нулевой массив в Java varargs? - PullRequest
4 голосов
/ 27 июня 2019

У меня есть следующий код в Java:

  public static void main(String[] args) {
    checkVarargs(null);
  }

  public static void checkVarargs(String... o) {
    System.out.println(o);
  }

Когда я пытаюсь автоматически преобразовать основной метод в Kotlin, я получаю следующее:

    @JvmStatic
    fun main(args: Array<String>) {
      checkVarargs(null)
    }

Однако, в случае Java передается нулевой массив, и он печатает null, тогда как в случае Kotlin он печатает [Ljava.lang.String;@548c4f57 (массив, который содержит ноль).

Можно ли передать пустой массив в Java varargs из кода Kotlin?

1 Ответ

4 голосов
/ 27 июня 2019

Вопрос в том, почему Java ведет себя так?Имеет ли это смысл?Разве вы не хотите передать null строку?Kotlin не поддерживает эту расплывчатую концепцию «nullable varargs», вы не можете достичь этого, как в Java.

checkVarargs() пропустит пустой массив

checkVarargs(null) передастмассив с null в нем

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