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

Java实现按条件删除网格数据时toString传参报错如何解决

问题解决方法

报错原因

你收到的报错是因为Java中Object类自带的toString()方法为无参方法,你调用时传入了"Not Contacted"字符串参数,没有匹配的方法重载,所以触发了类型不匹配错误。除此之外,原代码中用==对比字符串的写法也存在隐患:==对比的是字符串对象的内存地址,而非实际内容,大概率会出现逻辑判断不符合预期的问题。

修正后代码

你只需要直接对比customer.getStatus()返回的状态值和目标字符串即可,修正后代码如下:

private void delete() {
    // 用equals做字符串内容对比,把常量写在前面可以避免空指针异常
    if("Not Contacted".equals(customer.getStatus())) {
        service.delete(customer);
        myUI.updateList();
        setVisible(false);
    } else {
        Notification.show("you cannot delete this");
    }
}

可选优化(如果状态是枚举类型)

如果你的客户状态是用枚举类管理的,推荐直接对比枚举实例,不需要做字符串转换,性能和可维护性更高:

// 假设状态枚举类为CustomerStatus,NOT_CONTACTED是对应Not Contacted的枚举实例
if(CustomerStatus.NOT_CONTACTED.equals(customer.getStatus())) {
    // 执行删除逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:51:01