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

如何通过类方法修改类实例属性值并返回对应类型的结果

问题诊断与修复方案

错误原因

  • 你定义的Add方法返回值类型为Time类,但实际返回的是Hour + hrs的int类型计算结果,两种类型不匹配,因此报类型转换错误。
  • 现有代码逻辑未满足需求:你需要返回包含累加后小时数的Time对象,而不是单纯的int数值,也没有复用原对象的Min、Sec属性。

修复代码

方案1:返回全新Time实例(不修改原对象,更安全)

该实现不会改变原有time1的属性值,会生成新的Time对象返回,适合需要保留原始时间的场景:

public Time Add(int hrs) {
    int newHour = Hour + hrs;
    // 可选添加24小时制溢出处理:newHour = newHour % 24; 涉及负数小时数场景可再做调整
    return new Time(newHour, Min, Sec);
}

调用示例:

Time time2 = time1.Add(8); // time1的Hour仍为12,time2的Hour为20

方案2:修改当前实例后返回(会改变原对象属性)

如果你的需求是直接修改原time1的小时数,直接修改当前对象的Hour属性后返回自身即可:

public Time Add(int hrs) {
    Hour += hrs;
    // 可选添加24小时制溢出处理:Hour %= 24;
    return this;
}

调用示例:

time1.Add(8); // 执行后time1的Hour变为20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:06:08