Почему используется метод с параметром int вместо метода с параметром Short? [Дубликат]

Вы можете сделать это, используя merge_all в пакете reshape. Вы можете передать параметры merge с помощью аргумента ...

reshape::merge_all(list_of_dataframes, ...)

. Это отличный ресурс для разных методов для объединения кадров данных .

4
задан Dmitry Ginzburg 26 March 2015 в 14:05
поделиться

2 ответа

Хорошо, когда нет метода, который принимает short, есть 2 варианта: автобокс в Short или отбрасывание в целое. JLS указывает, что второй вариант в предпочтительном:

Контексты вызова метода позволяют использовать одно из следующего:

  1. a (§5.1.1)
  2. расширение примитивного преобразования (§5.1.2)
  3. расширение ссылочного преобразования (§5.1.5)
  4. a (§5.1.7), за которым следует расширенное ссылочное преобразование
  5. преобразование для распаковки (п. 5.1.8), за которым следует расширенное примитивное преобразование.

То, что вы ожидаете здесь, это a boxing conversion, но вы получаете a widening primitive conversion.

Вы можете узнать больше о боксе здесь , чтобы правильно понять соотношение между short и Short.

5
ответ дан Dmitry Ginzburg 23 August 2018 в 06:48
поделиться

Последовательность связывания работает следующим образом:

  1. Точное совпадение (пример int--> int)
  2. Промотирование (пример int --> long)
  3. Автобоксирование / распаковка (пример int --> Integer)
  4. Варагсы (пример int --> int...)
8
ответ дан OPK 23 August 2018 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: