Java 9 改进的 @Deprecated 注解

一、 @Deprecated 注解简单介绍

  • 简单来讲就是,若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用。
  • 或许有人会问为什么会出现加这个注解呢,直接在写方法的时候定义一个新的不就好了吗?
  • 因为在一个项目中,工程比较大,代码比较多,而在后续开发过程中,可能之前的某个方法实现的并不是很合理,这个时候就要新加一个方法,而之前的方法文不能随便删除,因为可能在别的地方有调用它,所以加上这个注解,就方便以后开发人员的方法调用了。

二、@Deprecated 注解 官方介绍

注解 @Deprecated 可以标记 Java API 状态,可以是以下几种:

  • 使用它存在风险,可能导致错误
  • 可能在未来版本中不兼容
  • 可能在未来版本中删除
  • 一个更好和更高效的方案已经取代它。

而我在项目中遇到的 @Deprecated 注解,其实就是因为又写了个更好的方案,所以在原来的方法上加上了这个注解

三、代码举例

代码如下(示例):

	@Override
    @Deprecated
    public void setResponse(CommonResponse response) {
        //TODO:解析短信返回结果。
        if (response != null) {
            this.status = response.toString();
            String resData = response.getData();
            System.out.println("ResponseData:" + resData);
            try {
                JSONObject jsonObject = new JSONObject(resData);
                this.requestId = jsonObject.getString("RequestId");
                this.bizId = jsonObject.getString("BizId");
                this.status = jsonObject.getString("Code");
                this.responseMessage = jsonObject.getString("Message");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void setResponse(com.aliyuncs.dysmsapi.xx.xx.SendSmsResponse response) {
        if (response != null) {
            this.status = response.getCode();
            this.requestId = response.getRequestId();
            this.bizId = response.getBizId();
            this.status = response.getCode();
            this.responseMessage = response.getMessage();
        }
    }


    @Override
    public void setResponse(SendSmsResponse res) {
        // 输出 JSON 格式的字符串回包
        if (res != null) {
            try {
                this.status = String.valueOf(res.getSendStatusSet()[0]);
                JSONObject jsonObject = new JSONObject(SendSmsResponse.toJsonString(res));
                this.requestId = jsonObject.getString("RequestId");
                this.bizId = jsonObject.getString("SerialNo");
				//this.status = jsonObject.getString("Code");
                this.responseMessage = jsonObject.getString("Message");
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
        System.out.println(SendSmsResponse.toJsonString(res));
        // 可以取出单个值,您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义
        System.out.println("requestId:" + res.getRequestId());
        System.out.println("status:" + res.getSendStatusSet()[0]);
    }

    @Override
    public void setResponse(SendBatchSmsResponse sendSmsResponse) {
        if (sendSmsResponse != null) {
            this.status = sendSmsResponse.getCode();
            this.requestId = sendSmsResponse.getRequestId();
            this.bizId = sendSmsResponse.getBizId();
            this.status = sendSmsResponse.getCode();
            this.responseMessage = sendSmsResponse.getMessage();
        }
    }

总结

每天学习,每天开心;
学习一点点,开心一点点;
学习亿点点,开心亿点点 ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值