当我声明 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("----------------------------------------");
最佳答案
隐式转换
由于 int
足够大,可以容纳 char
的所有可能值,因此将执行自动转换 - 这称为隐式转换,并且因此,在使用 char 调用该方法时不需要执行任何操作。
您可以使用显式强制转换:
printChar((char)97);
但是要小心这种危险,除非您确定自己想要实现什么目标。
关于java - 为什么 int 参数允许传递 char 值,但 char 参数不接受传递 int 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38355395/