为什么 java.lang.Long 的 .longValue() 会将其(long)实例值转换为 long?
2022-09-01 17:50:30
我一直在研究类源代码。java.lang.Long
请考虑以下情况:
public final class Long extends Number implements Comparable<Long> {
....
private final long value;
....
public long longValue() {
return (long)value;
}
....
}
投给的原因是什么?long
long
在这种情况下,为什么不将其序列化(?)重新定性为Number类?
附言 1 源代码链接
我有这些可能的解释:
- 开发人员的粗心大意
- 符合一些统一的代码风格
- 它是为一些特殊情况制作的,但我不明白为什么。
附言 2
我的java版本 -1.7.0_45-b18
P.S.3 仅供参考:
Integer
:
public final class Integer extends Number implements Comparable<Integer> {
....
private final int value;
....
public int intValue() {
return value;
}
....
}
Short
:
public final class Short extends Number implements Comparable<Short> {
....
private final short value;
....
public short shortValue() {
return value;
}
....
}
和 相同。(这些都不是同类的。Byte
Character
这是一个问题,还是只是被遗忘了?