Я изучал исходный код класса java.lang.Long
.
Рассмотрим это:
public final class Long extends Number implements Comparable<Long> {
....
private final long value;
....
public long longValue() {
return (long)value;
}
....
}
В чем причина перевода long
в long
?
Почему бы не reralize сериализовать (?) его в класс Number в этом случае?
P.S.1 ссылка на исходный код
У меня есть следующие возможные объяснения:
- Небрежность разработчиков
- Соответствие некоторому унифицированному стилю кода
- Это было сделано для какого-то особого случая, но я не понимаю, почему.
P.S.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
. (Ни один из них не похож на.)
Это проблема, или ее можно просто забыть?