为什么java int参数接受传递char值但char参数不接受传递int值?

时间:2016-07-13 15:04:47

标签: java methods parameters char int

当我声明一个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("----------------------------------------"); 

1 个答案:

答案 0 :(得分:1)

<强> Implicit casting

由于int足以容纳char的所有可能值,因此将执行自动演员 - 这称为隐式投射,因此您不会在使用char调用该方法时需要做任何事情。

您可以使用显式强制转换:

printChar((char)97);

但要注意这种危险,除非你确定你想要达到的目的。