Erreurs de types non convertibles en java
J'ai le code suivant:
import javax.swing.JOptionPane;
public class Excercise613 {
/**
* Display the prompt to the user; wait for the user to enter
* a whole number; return it.
*/
public static int askInt(String prompt) {
String s = JOptionPane.showInputDialog(prompt);
Double d = Double.parseDouble(s);
return d >= 0 ? (int) d : (int) (d - 1);
} // End of method
} // End of class
Lorsque je compile ceci, j'obtiens une erreur en bas de l'écran qui dit "types inconservables. requis: int; trouvé: java.lang.Double "Puis il met en évidence le morceau de code" (int) d".
Qu'est-ce que je fais de mal ici? Pourquoi la coulée de type ne fonctionne-t-elle pas?
4
1 answers
Utilisez la fonction doubleValue ().
Par exemple:
import javax.swing.JOptionPane;
public class Excercise613 {
// Display the prompt to the user; wait for the user to enter a whole number;
// return it.
public static int askInt(String prompt) {
String s = JOptionPane.showInputDialog(prompt);
Double d = Double.parseDouble(s);
return d >= 0 ? (int) d.doubleValue() : (int) (d.doubleValue() - 1);
} // End of method
} // End of class
Ou vous pouvez supprimer les moulages (int)
et appeler simplement d.intValue()
. Exemple:
return d >= 0 ? d.intValue() : (d.intValue() - 1);
2
Author: Dermot Blair, 2017-11-13 15:29:20