example - ¿Por qué el valor.longValue() de java.lang.Long arroja su valor de instancia(largo) a largo?
long vs int java (1)
He estado investigando el código fuente de la clase java.lang.Long
.
Considera esto:
public final class Long extends Number implements Comparable<Long> {
....
private final long value;
....
public long longValue() {
return (long)value;
}
....
}
¿Cuál es la razón para lanzar de long
a long
?
¿Por qué no reralizar serializarlo (?) En la clase Número en este caso?
Tengo estas posibles explicaciones:
- Descuido de los desarrolladores
- Cumplimiento con algún estilo de código unificado
- Fue hecho para algún caso especial, pero no entiendo por qué.
PS2
mi versión java - 1.7.0_45-b18
PS3 solo por información:
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;
}
....
}
y lo mismo para Byte
y Character
. (Ninguno de estos emitió like-to-like.)
¿Es un problema o puede simplemente olvidarse?
¿Supongo que se hizo que el código se unificara para los métodos relacionados?
observar un estilo de código único.
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;
}
Pero noté que en Java 1.6 (1.6_0_45 al menos) para la clase Integer
public int intValue() {
return (int)value;
}
pero en Java 1.7 para la clase Integer
public int intValue() {
return value;
}
Conclusión : los desarrolladores no han prestado atención a este aspecto.
PS: es solo mi suposición.