类型不匹配:无法从String转换为long

时间:2014-06-10 12:29:12

标签: java

当我尝试设置标志并返回flag的值时,我收到上述错误。我正在编写以下代码:

public static long insertEpaymentResDtls(PortalEpaymentResVO portalEpaymentResVO) {
    // TODO Auto-generated method stub
    String flag = null;
    SppPaymentRequestKiosk sppPaymentRequestKiosk = new SppPaymentRequestKiosk();
    SppUserEformData sppUserEformData = new SppUserEformData();
    sppUserEformData = genericDao.findById(SppUserEformData.class, SppUserEformDataId.class,
            new SppUserEformDataId(portalEpaymentResVO.getMtrxId(), portalEpaymentResVO.getOxitrxId(), Integer.parseInt(portalEpaymentResVO.getTrxStatus())));
    try
        {
        if (sppPaymentRequestKiosk != null)
            {
            sppPaymentRequestKiosk.setStatus(portalEpaymentResVO.getTrxStatus());
            }
        sppPaymentRequestKiosk = genericDao.save(sppPaymentRequestKiosk);
        if (sppPaymentRequestKiosk != null)
            {
            flag = "Success";
            }
        }
    catch (Exception e)
        {
        GLOGGER.error("Exceptin occured at the time of updateStatus in EformServiceImpl." + e.getMessage());
        }
    return flag;//ERROR IN THIS LINE
    }

这是代码片段。请帮助。

3 个答案:

答案 0 :(得分:1)

您的方法签名声明它返回原始long

由于您要返回String flag,因此必须将返回类型更改为String

如:

public static String insertEpaymentResDtls(etc...

答案 1 :(得分:0)

将方法返回类型更改为String,如何声明long return并返回String标志

public static String insertEpaymentResDtls(PortalEpaymentResVO portalEpaymentResVO) {
.
.
.
}

答案 2 :(得分:0)

你的函数应该返回一个long,但是你要返回一个String。 将返回类型更改为String,或者为要返回的任何内容定义数值(即成功)并声明" flag"作为一个长而不是字符串。

您也可以输入:flag = "1"而不是flag = "success" 并返回Long.parseLong(flag);