RPC返回Byte类型的坑

RPC接口

接入其它系统RPC接口:

    RpcResult<Byte> findRecipeTypeById(Long id);

调用

 @Override
    public Byte getRecipeTypeById(Long recipeId) {
        RpcResult<Byte> rpcResult = null;
        try {
            rpcResult = recipeCommonFacadeService.findRecipeTypeById(recipeId);
        } catch (Exception e) {
            return null;
        }
        if (null == rpcResult || rpcResult.isSuccess() == false) {
            return null;
        }
        return rpcResult.getResult();
    }

报错

调用成功,到 return rpcResult.getResult();这行报错:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Byte

排查

断点执行,发现返的rpcResult中的类型是Integer类型,Byte被自动转化为了Integer

解决

rcp返回改为Integer类型

发表评论

电子邮件地址不会被公开。 必填项已用*标注