【Java】char型の変数に文字列を代入したらincompatible typesエラーが発生した
環境
・ホストOS: Windows10 Home
・ゲストOS: WSL2 Ubuntu18.04 LTS
・VScode ver 1.44.2
・Java openjdk11
エラー内容
public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
switch (operator) {
case "+": //1
return firstNum + secondNum;
break;
public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
switch (operator) {
case "+": //1
return firstNum + secondNum;
break;
上のコードを実行したところ、//1の箇所で下記のエラーが発生した。
・incompatible types
・Type mismatch: cannot convert from String to char
"+"がchar型ではなく、String型の文字列として認識された模様。
解決法
・文字をchar型の変数として扱う際はシングルクォーテーションでくくる。
public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
switch (operator) {
case '+': //修正箇所
return firstNum + secondNum;
break;
上のように修正した結果コンパイルエラーがなくなった。
考察等
ソースコードに「文字」データを記述する場合は引用符(')で囲みます。そして「文字列」データを記述する場合は二重引用符(")を使います。
(中山清喬, 国本大吾 『スッキリわかるJava入門 第2版』p.50)
ということで
String型の文字列→""で囲む
char型の文字→''で囲む
と覚えておきたい。
参考資料
Author And Source
この問題について(【Java】char型の変数に文字列を代入したらincompatible typesエラーが発生した), 我々は、より多くの情報をここで見つけました https://qiita.com/Jazuma/items/2b7afc1f48eb96468e07著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .