当我声明一个java方法时,
为什么java int参数接受传递的char值
但char参数不接受传递的int值?
例如:
// method which : int parameter
public static void printInt(int input) {
System.out.println(input);
}
// method which : char parameter
public static void printChar(char input) {
System.out.println(input);
}
// main
System.out.println("----------------------------------------");
printInt('a'); // print 97 [number of ASCII char 'a']
// int parameter accept char value
printChar(97); // compilation error
// char parameter NOT accept int value
System.out.println("----------------------------------------");
答案 0 :(得分:1)
<强> Implicit casting
强>
由于int
足以容纳char
的所有可能值,因此将执行自动演员 - 这称为隐式投射,因此您不会在使用char调用该方法时需要做任何事情。
您可以使用显式强制转换:
printChar((char)97);
但要注意这种危险,除非你确定你想要达到的目的。