Pour commencer, vous essayez de jeter entre un objet, String
, et une primitive, int
. Cela ne fonctionnera tout simplement pas. Les objets ne peuvent pas être convertis en primitives, et vice-versa. Un String
comprend un tableau de char
enveloppé dans un objet.
Un int
comprend un seul nombre décimal signé.
Lorsque vous essayez d'exécuter une méthode qui nécessite une int
avec un String
, vous n'êtes pas fournirez avec un numéro, vous fournissez avec un char
, qui doit ensuite être jeté à un int
. En outre, la façon dont vous avez configuré la surcharge, il n'y a aucun moyen de différencier entre la météo ou non, vous utilisez la méthode m1(int)
ou m1(float)
méthode. Pour résoudre ce problème, vous devez ajouter la méthode suivante:
public void m1(String s) {
System.out.println("String-arg");
}
Pour l'avenir, de jeter entre un String
et int
, utilisez:
int i = Integer.parseInt("44"); // Equal to 44.
qui court alors le risque de redonner un NumberFormatException
, pour être sûr:
public void randomMethod(String input) {
int i = 0;
try {
i = Integer.parseInt(input);
} catch (NumberFormatException e) {} // Fill in with your requirements.
}
Parce qu'un 'String' n'est pas un' float' ** ou ** un 'int'. –
Mais il faut donc char ... – fool
Un 'String' n'est pas un' char'; mais un 'char' est un type intégral (et peut être * élargi * à un' int'). –