java: tiempo de ejecución equivalente de conversión entre tipos numéricos

Puedo hacer esto cuando conozco los tipos de objetos en tiempo de compilación:

int obj1 = 3;
float obj2 = (float)obj1;
int obj3 = (int)obj1;
short obj4 = (short)obj1;

¿Cuál es la forma simple más eficiente de producir la misma conversión entre tipos numéricos, con tipos de objeto conocidos en tiempo de ejecución?

// given a primitive (or boxed primitive) number class,
// returns a number that's a boxed instance of that class, 
// equivalent in value to the appropriate primitive cast
// (otherwise throws an IllegalArgumentException)
public Number runtimeNumericCast(Number sourceNumber, 
         Class<?> resultType)
{
   ...
}

Number obj1 = 3;  // really an Integer
Number obj2 = runtimeNumericCast(obj1, Float.class); // will return 3.0f
Number obj3 = runtimeNumericCast(obj2, int.class) // will return 3
Number obj4 = runtimeNumericCast(obj3, Short.class) // will return (short)3

Lo mejor que puedo pensar es utilizar una Map<Class<?>, Function<Number,Number>>y declarar una función para cada uno de los 6 tipos primitivos numéricos para volver Number.byteValue(), Number.shortValue(), Number.intValue(), Number.longValue(), Number.floatValue(), yNumber.doubleValue() .

Respuesta 1

Quiero crear una columna e instalar un botón en esta última columna de esta tabla. pinakas públicas de JPanel (String [] pinaka) {int sr = 0; // int ari8mos = 0; Cuerda[] ...

Quiero utilizar algún mecanismo para hacer algo como esto: tengo un servidor de aplicaciones que recibe solicitudes para procesar pedidos. Una solicitud puede tener uno o dos pedidos. Para procesar el pedido, el ...

Entonces, soy realmente nuevo en el mundo de los gráficos y para una aplicación en la que estoy trabajando, necesito convertir una matriz 2D de valores int en una imagen 2d donde los valores int corresponden a un color. Por ejemplo, un valor de (...

Estoy usando un proyecto que tiene estas importaciones al principio: import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocket; import javax.net.ssl ​​....