1 будет по умолчанию рассматриваться как int в Java.
Итак, когда вы делаете ((короткий) 1), вы передаете 1 как короткий параметр через функцию. Аргумент приема должен быть коротким.
Принимая во внимание, что если у вас короткий s = 1, то это, очевидно, целое число short
.
Помните, что в обоих случаях шорты будут преобразованы в int (это называется продвижение по службе) во время выполнения операций. И, если работает с двойными операндами, эти int's повысятся до double.
В чем разница между ними, а какая лучше?
В обоих случаях выполняются те же операции (передача короткой переменной в качестве аргумента), и обе они одинаково лучше. Но вам следует избегать использования целых чисел short
, если это крайне необходимо, поскольку у него есть некоторые недостатки (вызывает ошибки во время компиляции, когда вы случайно пытаетесь сохранить int/long до короткого).
Я думаю, что метод 'foo()' получит одинаковый ввод в обоих случаях. Я лично предпочитаю вторую версию без литья, потому что ее легче читать. Можем ли мы узнать, почему у вас есть этот вопрос? –
Обе формы эквивалентны (и * в общем случае * вы не должны использовать 'short', см. Http://stackoverflow.com/questions/1615419/what-is-the-reason-for-these-pmd-rules, например) –
@RC. Благодарю. Не знал эту информацию. –