Я немного повозился с разборкой сгенерированного байт-кода, и, за исключением одного случая, приведение идентично Java.Единственный случай, когда кажется, что он отличается, - это использование оператора безопасного приведения , as?
, например, так:
val thing = "" as? Int
Это генерирует эквивалентный байт-код для этого кода Java:
String _temp = "";
if (!(_temp instanceof Integer)) {
_temp = null;
}
Integer thing = (Integer) _temp;
Это делает его немного дороже, чем обычное приведение в Java.Тем не менее, в Java нет прямого эквивалента этому поведению, если не считать аналогичного оператора if
, так что я думаю, можно с уверенностью сказать, что приведение в Kotlin не дороже, чем приведение в Java.