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

Java方法未按预期显示问题咨询:附Move类代码及调用场景

问题分析与修复方案

嘿,我一眼就瞅出你代码里的问题啦!这是个新手很容易踩的小坑,咱们一步步捋清楚:

核心错误:字符与整数的混淆

你的convertColourtoNum方法里,把index赋值成了字符常量(比如'0'),但你实际需要返回的是整数值(比如0)。字符'0'在ASCII编码里对应的数值是48,所以当你返回index时,拿到的其实是48、49、50、51这些数字,完全不是你预期的0、1、2、3!

修复后的完整代码

把字符常量改成整数常量就搞定了,另外我还给你加了个toString方法,方便直接打印Move对象的信息:

public class Move {
    private char colour;
    private int number;

    // 构造方法
    public Move(char colour, int number) { 
        this.colour = colour; 
        this.number = number; 
    } 

    public static int convertColourtoNum(char colour) { 
        int index = 0; 
        if (colour == 'R') index = 0;    // 这里改成整数0,不是字符'0'
        else if (colour == 'Y') index = 1;
        else if (colour == 'G') index = 2;
        else index = 3;
        return index; 
    }

    // 可选:添加toString方法,方便直接打印Move对象的完整信息
    @Override
    public String toString() {
        return "颜色对应数字:" + convertColourtoNum(this.colour) + ",输入数字:" + this.number;
    }
}

正确的调用方式

现在你可以这样调用,就能得到预期的结果了:

Move m = new Move('R', 4); 
// 方式1:直接调用静态转换方法
System.out.println("R对应的数字是:" + Move.convertColourtoNum(m.colour));
// 方式2:用toString方法直接打印整个Move对象
System.out.println(m);

运行后输出会是:

R对应的数字是:0
颜色对应数字:0,输入数字:4

内容的提问来源于stack exchange,提问作者aNaN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:28:33