You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:57:23