是否可以在仅接受String
类型的方法中传递char类型变量?要理解我的问题,请说明打电话时的可行性
来自calculation(ch)
的{{1}}方法?
main()
答案 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);
由于ch
为char
,因此无法将其应用于接受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));