【发布时间】:2016-07-13 15:04:47
【问题描述】:
当我声明一个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("----------------------------------------");
【问题讨论】:
-
@khelwood 这是因为
int被认为比char“更宽”,因为它可以具有的值范围。注意:32 位的float比 64 位的long宽。
标签: java methods parameters char int