Почему при преобразовании char в int в JAVA нет необходимости в приведении типов? [Дубликат]

1

В Java я знаю, что вы можете преобразовать char в ints так:

int c = (int) msg.charAt(i);

Но почему это также работает без ошибок:

int c = msg.charAt(i);

функция возвращает int, поэтому, конечно, ее нужно "отличить" от int перед ее использованием.

DUPLICATE: Хотя ответ дается: Почему нам разрешено назначать char int в java? , qusestion немного отличается. Поскольку я не спрашивал, почему мы можем назначить char для int, скорее я спрашивал, почему нет необходимости делать броски. Я предлагаю держать это открытым для людей в Google, хотя и тот же ответ!

  • 0
    Это скомпилируется, но если вам придется выполнять вычисления с этим значением, это даст вам неверный результат. Я просто говорю из моего опыта C # :)
  • 0
    Вопрос интересный, но мне пришлось пометить его как дубликат. Просто знайте, что назначение char для int разрешено в C и, следовательно, разрешено в Java.
Показать ещё 2 комментария
Теги:
casting

1 ответ

1
Лучший ответ

String.charAt возвращает char. char to int является расширением примитивного преобразования (см. JLS 5.1.2), этот тип преобразования не теряет информации, поэтому он не нуждается в явном приведении

  • 0
    Большое спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню