Dan*_*elo -2 java integer character
Integer.valueOf接受String和int作为参数但是当我通过时Character,它不需要强制转换并且编译器不强制执行任何操作。
字符不扩展String类,它只是实现Serializable和Comparable
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)
这不是设计缺陷还是我在错误的方向思考?当您拒绝投票时,请在评论中写下原因。
JLS 5.2, 分配转换专门涵盖了这一点。(将参数传递给方法本质上就像为变量赋值。)
赋值上下文允许使用以下之一:
...
- 一个拆箱转换(第 5.1.8 节),可选地后跟一个扩大的原始转换。
这里发生的事情Character是被拆箱到char; 然后char被扩大到int。