Integer.valueOf 针对一个字符返回 ASCII

Dan*_*elo -2 java integer character

Integer.valueOf接受Stringint作为参数但是当我通过时Character,它不需要强制转换并且编译器不强制执行任何操作。

字符不扩展String类,它只是实现SerializableComparable

Character charc = '1';
System.out.println(Integer.valueOf(charc));
System.out.println(Integer.valueOf(charc.toString()));
Run Code Online (Sandbox Code Playgroud)

输出:

49
1
Run Code Online (Sandbox Code Playgroud)

这不是设计缺陷还是我在错误的方向思考?当您拒绝投票时,请在评论中写下原因。

在此处输入图片说明

And*_*ner 5

JLS 5.2, 分配转换专门涵盖了这一点。(将参数传递给方法本质上就像为变量赋值。)

赋值上下文允许使用以下之一:

...

  • 一个拆箱转换(第 5.1.8 节),可选地后跟一个扩大的原始转换。

这里发生的事情Character是被拆箱到char; 然后char被扩大到int