¿A alguien se le ocurre cómo traducir este código a Java?
Llevo todo el día dándole vueltas y no lo consigo.
¿A alguien se le ocurre cómo traducir este código a Java?
Llevo todo el día dándole vueltas y no lo consigo.
@yawin los genéricos de Java no tienen nada que ver con los templates de C++,y menos aún para tipos numéricos. No estoy muy puesto en C++, T sería cualquier tipo al que se puede castear un double?
@yo para este ejemplo asume que sí. Debería poner protecciones al respecto y tal pero quería que quedara limpio para que se entendiera.
La idea es esa: recibir cualquier tipo numérico, castearlo a double, llamar a la función y castear de vuelta al tipo recibido el resultado.
Además que como luego uso reflects para guardar el valor, es importante que el tipo devuelto sea el que tiene que ser.
@yawin yo no me liaría. Hay muy pocos tipos numéricos en Java. Acabas antes haciendo distintas versiones a mano.
Diría que solo lo puedes hacer genérico mediante reflection, si te importa lo más mínimo el rendimiento no lo hagas.
Nota: hace mil que no toco estas cosas y me puedo estar olvidando de algo básico.
@yo nada que ver. Es básicamente una cosa que estoy haciendo para un simulador que, a la hora de cargar datos, quiero que pueda guarrearlos un poco. Y como en un futuro podrían añadirse campos con tipos que no he considerado, quería dejarlo programado lo más genérico posible para que añadir nuevos tipos sea trivial.
Mi problema es que este proyecto está en java y no es para nada mi área de confort.
@yawin https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Math.java si miras por ahí, verás como los autores de Java resuelven problemas similares... No es un lenguaje muy bueno para estas cosas, en mi opinión...
(O más bien, C++ es un lenguaje extraordinario. La mayoría de lenguajes manejan esto con limitaciones similares a Java.)