为什么char返回int

时间:2015-06-22 23:08:09

标签: java

所以我得到了这段代码..是否有人能够解释为什么它返回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);
         }
    }

2 个答案:

答案 0 :(得分:2)

char扩展为intJava Language Spec 5.1.2中指定的基本扩展基元转换。该转换在基础层面内置于语言中。

另一方面,charString之间没有直接转换,如果您没有int重载,则代码将无法编译。 char必须通过与String连接,使用""或其他技术明确转换为Character.toString

答案 1 :(得分:0)

char,除了一些关于它如何打印的糖,基本上是一个整数类型。在寻找合适的方法时,char可以扩展为intlongfloatdouble,并且可以自动装箱到java.lang.Character 。但是,它不能转换为java.lang.String。如果这是你想要的行为,你必须自己明确地做,例如:

public static void main(String args[])
 {
        Student13 obj = new Student13();
        char ch = 'c';
        obj.myMethod(String.valueOf(ch));
 }