如何修复Java中String赋值给int引发的'Incompatible types'错误?
问题解决:Java类型不兼容错误
错误原因
你代码里的monthNumber是int类型变量,但determineNameofMonth方法返回的是String类型结果,直接把字符串赋值给整数变量,就会触发「类型不兼容:找到java.lang.String,需要int」的错误。
修正后的代码
package javauebung5; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Type Number for name of month"); int monthNumber = scanner.nextInt(); // 用String类型变量接收方法返回的月份名称 String monthName = determineNameofMonth(monthNumber); // 输出结果 System.out.println(monthName); } private static String determineNameofMonth(int monthNumber) { switch (monthNumber) { case 1: return "January"; case 2: return "February"; case 3: return "March"; case 4: return "April"; case 5: return "May"; case 6: return "June"; case 7: return "July"; case 8: return "August"; case 9: return "September"; case 10: return "October"; case 11: return "November"; case 12: return "December"; default: return "Invalid Month"; // 用default分支处理非法输入更规范 } } }
额外优化提示
- 给switch加上
default分支,替代原来的末尾return,逻辑上更符合switch语法规范。 - 可以添加输入校验逻辑,比如先判断用户输入是否为整数,或者输入的数字是否在1-12范围内,避免后续逻辑出错。
内容的提问来源于stack exchange,提问作者MasterSteve
相关产品推荐
相关产品推荐

