Intento encontrar, pero todo parece vago. Necesito convertir Object o to Double. ¿Es la forma correcta primero convertir a String? Gracias.forma correcta de Java convertir/objeto fundido a Doble
Respuesta
No se puede convertir un objeto a Double
si el objeto no es un doble.
Echa un vistazo a API.
particularmente en cuenta
valueOf(double d);
y
valueOf(String s);
Estos métodos le dan una forma de obtener una instancia Double
partir de una cadena o de doble primitiva. (Tampoco los constructores, lea la documentación para ver cómo funcionan) El objeto que está intentando convertir de forma natural tiene que darle algo que se puede transformar en un doble.
Finalmente, tenga en cuenta que las instancias Double
son inmutables: una vez creadas, no puede cambiarlas.
new Double(object.toString());
Pero me parece extraño que vaya de un objeto a un doble. Debería tener una mejor idea de la clase de objeto con la que está empezando antes de intentar una conversión. Es posible que haya un problema de calidad de código allí.
Tenga en cuenta que esto es una conversión, no de fundición.
Si el objeto es nulo, lanzará nullpointerexception. –
Double.valueOf (object.toString()) usa menos memoria – Loolooii
Puede usar el operador instanceof para probar si se trata de un doble antes del lanzamiento. Luego puedes lanzarlo a un doble. Además, puede probarlo contra otros tipos conocidos (por ejemplo, entero) y luego forzarlos en un doble manualmente si así lo desea.
Double d = null;
if (obj instanceof Double) {
d = (Double) obj;
}
En la versión de Java antes de la 1.7 no se puede convertir objeto de tipo primitivo
double d = (double) obj;
Puedes lanzar un objeto a un doble bien
Double d = (Double) obj;
ten cuidado, que puede lanzar una ClassCastException si su objeto no es un Doble
También vale la pena mencionar: si se vio obligado a utilizar una versión anterior de Java anterior a la 1.5 e intenta usar Colecciones, no podrá parametrizar la colección con un tipo como Double
.
Vas a tener que manualmente "cuadro" a la clase Double
al añadir nuevos elementos, y "unbox" a la primitiva double
mediante el análisis y la colada, hacer algo como esto:
LinkedList lameOldList = new LinkedList();
lameOldList.add(new Double(1.2));
lameOldList.add(new Double(3.4));
lameOldList.add(new Double(5.6));
double total = 0.0;
for (int i = 0, len = lameOldList.size(); i < len; i++) {
total += Double.valueOf((Double)lameOldList.get(i));
}
La lista de la vieja escuela contendrá solo el tipo Object
y, por lo tanto, se debe convertir a Double
.
Además, no podrá iterar a través de la lista con un bucle mejorado en las primeras versiones de Java, solo con un for-loop.
¿Quiere decir "antes de 1.5"? Ahí es donde se introdujeron los genéricos y el autoboxing. ¿O quisiste decir algo más? –
Vaya, usted es correcto @AlexeyRomanov, he editado mi respuesta para reflejar esto. –
Si su objeto representa un número, por ejemplo, como un entero, puede convertirlo en un número y luego llamar al método doubleValue().
Double asDouble(Object o) {
Double val = null;
if (o instanceof Number) {
val = ((Number) o).doubleValue();
}
return val;
}
intentado todas estas modalidades de la conversión ->
public static void main(String[] args) {
Object myObj = 10.101;
System.out.println("Cast to Double: "+((Double)myObj)+10.99); //concates
Double d1 = new Double(myObj.toString());
System.out.println("new Object String - Cast to Double: "+(d1+10.99)); //works
double d3 = (double) myObj;
System.out.println("new Object - Cast to Double: "+(d3+10.99)); //works
double d4 = Double.valueOf((Double)myObj);
System.out.println("Double.valueOf(): "+(d4+10.99)); //works
double d5 = ((Number) myObj).doubleValue();
System.out.println("Cast to Number and call doubleValue(): "+(d5+10.99)); //works
double d2= Double.parseDouble((String) myObj);
System.out.println("Cast to String to cast to Double: "+(d2+10)); //works
}
- 1. Forma correcta de obtener el doble más negativo
- 2. java sin control fundido
- 3. Forma correcta de sincronizar ArrayList en java
- 4. C: fundido int a size_t
- 5. Java: Desactivada fundido de X a Y/cómo implementar castOrNull
- 6. Conversión de largo a doble en Java
- 7. ¿La forma correcta de cerrar un OutputStream en Java?
- 8. La forma correcta de "cambiar" un componente en Java
- 9. Cómo fundido a la matriz variable de
- 10. jQuery fundido a nueva imagen
- 11. Forma correcta de crear formularios
- 12. Forma correcta de detener IntentService
- 13. Inicialización doble de Java
- 14. ¿Cuál es la forma correcta de representar el doble en C#?
- 15. ¿Forma correcta de crear clases en JavaScript?
- 16. forma correcta de utilizar StringBuilder
- 17. Forma correcta de probar gemas
- 18. ¿Cuál es la forma correcta de referirse a los miembros de Java en el texto?
- 19. ¿Cuál es la forma correcta de especificar dimensiones en DIP a partir del código de Java?
- 20. Forma correcta de reasignar punteros en C++
- 21. Forma correcta de convertir el número * de char a int32_t
- 22. Java comparación doble epsilon
- 23. Java doble bloqueo bloqueado
- 24. Forma correcta de llamar a un método JavaScript
- 25. ¿Forma correcta de hacer referencia a Javascript en ASP.NET MVC?
- 26. Forma correcta de convertir char * a NSString sin initWithCString?
- 27. Forma correcta de importar el archivo json a mongo
- 28. seguridad Tipo: Desactivada fundido
- 29. Java Doble a la cadena de conversión sin formato
- 30. Forma correcta de deshacerse de un BackGroundWorker
¿Cuál es el tipo especial de su objeto? ¿Es realmente un doble o algo más? – nos
¿Qué es un objeto? Es una clase desconocida o una clase doble que se ha tipeado a un objeto. – Rontologist
"Intento encontrar, pero todo parece vago". - tu pregunta es demasiado vaga para obtener una respuesta obvia. por favor elabora. ¿Qué es 'Objeto o' y cuál es la intención? – Saket