所以我得到了这段代码..是否有人能够解释为什么它返回int版本而不是String one?
class Student13
{
void myMethod(int i) {System.out.println("int version");}
void myMethod(String s) {System.out.println("String version");}
public static void main(String args[])
{
Student13 obj = new Student13();
char ch = 'c';
obj.myMethod(ch);
}
}
答案 0 :(得分:2)
将char
扩展为int
是Java Language Spec 5.1.2中指定的基本扩展基元转换。该转换在基础层面内置于语言中。
另一方面,char
和String
之间没有直接转换,如果您没有int
重载,则代码将无法编译。 char
必须通过与String
连接,使用""
或其他技术明确转换为Character.toString
。
答案 1 :(得分:0)
char
,除了一些关于它如何打印的糖,基本上是一个整数类型。在寻找合适的方法时,char
可以扩展为int
,long
,float
或double
,并且可以自动装箱到java.lang.Character
。但是,它不能转换为java.lang.String
。如果这是你想要的行为,你必须自己明确地做,例如:
public static void main(String args[])
{
Student13 obj = new Student13();
char ch = 'c';
obj.myMethod(String.valueOf(ch));
}