[Java] Une erreur de types incompatibles s'est produite lors de l'affectation d'une chaîne de caractères à une variable de type char.

environnement

-OS hôte: Windows10 Home ・ OS invité: WSL2 Ubuntu18.04 LTS ・ VScode ver 1.44.2 ・ Java openjdk11

contenu de l'erreur


public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
        switch (operator) {
            case "+": //1
                return firstNum + secondNum;
                break;

Lorsque j'ai exécuté le code ci-dessus, j'ai eu l'erreur suivante à // 1. · Personne imcompatible ・ Incompatibilité de type: impossible de convertir une chaîne en caractère

Il semble que "+" soit reconnu comme une chaîne de caractères de type String au lieu d'un type char.

Solution

-Lorsque vous manipulez des caractères comme des variables de type char, mettez-les entre guillemets simples.


public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
        switch (operator) {
            case '+': //Lieu de modification
                return firstNum + secondNum;
                break;

Suite à la correction ci-dessus, l'erreur de compilation a disparu.

Considération etc.

Lorsque vous décrivez des données "caractère" dans le code source, mettez-les entre guillemets ('). Et lorsque vous décrivez des données de "chaîne de caractères", utilisez des guillemets doubles ("). (Kiyotaka Nakayama, Daigo Kunimoto, "Introduction à Java avec une compréhension claire, 2e édition" p.50)

Alors Chaîne de caractères de type chaîne → entourée de "" caractère de type char → Enclose in ''

Je veux me souvenir.

Matériel de référence

[Introduction à Java 2nd Edition](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82] % 8F% E3% 81% 8B% E3% 82% 8BJava% E5% 85% A5% E9% 96% 80-% E7% AC% AC2% E7% 89% 88-% E3% 82% B9% E3% 83 % 83% E3% 82% AD% E3% 83% AA% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA-% E4% B8% AD% E5% B1% B1-% E6% B8% 85% E5% 96% AC / dp / 484433638X)

Recommended Posts

[Java] Une erreur de types incompatibles s'est produite lors de l'affectation d'une chaîne de caractères à une variable de type char.
[Java] Comment découper une chaîne de caractères caractère par caractère
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
[Introduction à Java] À propos des variables et des types (déclaration de variable, initialisation, type de données)
[Java] Comment utiliser une sous-chaîne pour découper une partie d'une chaîne de caractères
[Java] Divise une chaîne de caractères par un caractère spécifié
[Java] Convertit null du type Object en type String
Notation pour mettre des variables dans une chaîne
[Introduction à Java] À propos des déclarations et des types de variables
Conversion de type du type java Big Decimal au type String
[Java] Comment convertir un élément d'un tableau de type String en type Int
[Java] Différence entre equals et == dans une chaîne de caractères qui est un type de référence
[Android] Comment convertir une chaîne de caractères en resourceId
Code pour échapper aux chaînes JSON en Java
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
[Java] le type char peut être converti en type int
java: Comment écrire une liste de types génériques [Note]