Подтвердить что ты не робот

Почему java.lang.Long.longValue() отличает длинное значение экземпляра long?

Я изучал исходный код класса 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. (Ни один из них не похож на.)

Это проблема, или ее можно просто забыть?

4b9b3361

Ответ 1

Я предполагаю, что было сделано, что код был унифицирован для связанных методов?

соблюдайте один стиль кода.

 public short shortValue() {
        return (short)value;
    }


    public int intValue() {
        return (int)value;
    }


    public long longValue() {
        return (long)value;
    }


    public float floatValue() {
        return (float)value;
    }


    public double doubleValue() {
        return (double)value;
    }

Но я заметил, что в java 1.6 (минимум 1.6_0_45) для класса Integer

public int intValue() {
            return (int)value;
}

но в java 1.7 для Integer class

public int intValue() {
            return value;
}

Заключение: разработчики не обратили внимания на этот аспект.

P.S. Это только мое предположение.