Java использует ASCII-код того символа, который вы передали своей функции.
так код ниже:
char c = 'a';
foo(c);
public void foo( int i){
System.out.println(i);
}
будет иметь результат: 97
, который является эквивалентным символу в int
.
Кроме того, если выражение [справа] является константным выражением типа byte, short, char или int:
- Может использоваться сужающее примитивное преобразование, если переменная имеет тип byte, short или char и значение константы
выражение представимо в типе переменной.
Вы должны знать, что int
- это примитивный тип в Java, но мы можем использовать классы-обертки вместо Integer , Character , ...
.
, поэтому вы можете использовать:
public void foo( Integer i){
System.out.println(i);
}
что он выдаст исключение:
java: incompatible types: char cannot be converted to java.lang.Integer