The label NO_TRADE is never explicitly referenced

本文通过解决一个具体问题,介绍了Java中switch case语句的正确使用方法,特别是多标签的情况。针对Eclipse发出的警告信息进行了解析,并给出了代码修正方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 问题描述

      今天在写Java switch case语句的时候,有一句代码引起Eclipse黄色警告:The label NO_TRADE is never explicitly referenced。

      原代码如下:

 

switch (tradeStatus) {
            case CREATE:
            NO_TRADE:
                result.setCommonStatus(CommonStatus.UNPAY);
                result.setActionButtons(Lists.newArrayList(getTradeButton("付款")));
                break;
            case SHIP:
                result.setCommonStatus(CommonStatus.ACCEPTED);
                result.setActionButtons(Lists.newArrayList(getTradeButton("确认服务")));
                break;
            case SUCCESS:
                result.setCommonStatus(CommonStatus.FINISH);
                result.setActionButtons(Lists.newArrayList(getTradeButton("评价")));
                break;
            default:
                break;
            }

 

 

    告警的是“NO_TRADE:”这行,告警的意思是次标签将永远不会被明确引用。

 

2. 原因分析

       后来自己又看了下代码及Java switch case的语法,原因是自己错误使用了语法,这种写法在Java语法中只会匹配CREATE这一种情况,后面的NO_TRADE是永远不会考虑的。

 

3. 解决方法

      只需要对NO_TRADE这个Label新增一个case标记即可,修改后的代码如下所示:

TradeStatus tradeStatus = TradeStatus.getByValue(searchDO.getTbMainOrderPayStatus().get(0).intValue());
            switch (tradeStatus) {
            case CREATE:
            case NO_TRADE:
                result.setCommonStatus(CommonStatus.UNPAY);
                result.setActionButtons(Lists.newArrayList(getTradeButton("付款")));
                break;
            case SHIP:
                result.setCommonStatus(CommonStatus.ACCEPTED);
                result.setActionButtons(Lists.newArrayList(getTradeButton("确认服务")));
                break;
            case SUCCESS:
                result.setCommonStatus(CommonStatus.FINISH);
                result.setActionButtons(Lists.newArrayList(getTradeButton("评价")));
                break;
            default:
                break;
            }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值