为什么在传递`char`类型时调用带有`int`参数的方法?

时间:2014-10-20 11:46:58

标签: java string

是否可以在仅接受String类型的方法中传递char类型变量?要理解我的问题,请说明打电话时的可行性 来自calculation(ch)的{​​{1}}方法?

main()

6 个答案:

答案 0 :(得分:4)

但您可以将其转换为String,因为两者都不兼容,请尝试这样做,

calculation(String.valueOf(ch));

是的,你甚至不需要转换,如果你希望将ASCII Character的值传递给接受calculation(int a)而不是int的方法calculation('A') {1}}有效。

答案 1 :(得分:3)

most accurate method will be called - See JLS Determine Method Signature。在您的情况下,您有两种方法具有不同的签名,一种接受String,一种接受int

致电时:

calculation(ch);

由于chchar,因此无法将其应用于接受String的方法,因为char不会隐式转换为{ {1}}。但是,可以调用接受String的方法,并传输它的ASCII值。

答案 2 :(得分:0)

不,您可以使用String.valueOf()

char ch='r';
calculation(String.valueOf(ch));

或者你也可以按照以下方式使用。

char ch='r';
calculation(""+ch);

答案 3 :(得分:0)

希望您想知道重载是如何工作的。请参考此String API并阅读valueOf方法。那些方法是重载方法。

希望这会对你有帮助......

答案 4 :(得分:0)

第一次"计算" method将string作为参数,其中第二个取整数。 当您传递字符' r'时,第二种计算方法称为' r'的ASCII值。传递给方法。这就是编译的原因。

答案 5 :(得分:0)

这不能自动从char转换为String。此代码将无法编译。

所以解决方案的步骤

char ch =' r&#39 ;; 计算(将String.valueOf(CH));