为什么java.lang.Integer不包含.charValue()?

为什么java.lang.Integer不包含.charValue()?,java,jvm,primitive-types,Java,Jvm,Primitive Types,所有类型的原语都可以从java.lang.Integer中检索,除了char之外。每个原语都有一个数字表达式,那么为什么java不允许Integer.charValue()?char不是数字吗?我还注意到java.lang.Character没有扩展java.lang.Number是的,char不是一个数字。字符是UTF编码。 Unicode是一种16位字符编码系统。最低值为\u0000,最高值为\uFFFF。 char也是无符号类型 这对我来说没有意义。在字节码中,字符表示为int,那么为什么

所有类型的原语都可以从
java.lang.Integer
中检索,除了
char
之外。每个原语都有一个数字表达式,那么为什么java不允许
Integer.charValue()
char
不是数字吗?我还注意到
java.lang.Character
没有扩展
java.lang.Number

是的,char不是一个数字。字符是UTF编码。 Unicode是一种16位字符编码系统。最低值为\u0000,最高值为\uFFFF
char也是无符号类型

这对我来说没有意义。在字节码中,字符表示为int,那么为什么java.lang.Character不是java.lang.Number呢?@GraxCode您可以对
布尔值
说同样的话。尽管如此,
boolean
char
int
之间还是存在语义上的差异。2000万的
charValue
是什么?@stunbar你的观点毫无意义,因为存在有意义的
Integer.byteValue()
。字节是一个数字,它只需要低8位。字符至少由16位表示,但可能更多。这取决于角色集。那么
charValue
会返回什么呢?16位?32位?还是8位ASCII码?它将改变char原语的最大值为65535,因此它应该返回16位(无符号)。即使在字节码中,字符和布尔值也被当作int来处理,所以我真的不明白为什么没有
charValue
booleanValue