无法在回调中分配值

时间:2015-09-16 03:14:07

标签: java android callback

我重构代码,我想创建工厂,使用方法与服务器一起工作。 我有好友:

public DriverBadge updateDriverBadges() {
        DriverBadge driverBadge;
        try {
            ServerProxy.GetInstance().GetDriverBadge(new IRemoteCallback<DriverBadge>() {
                @Override
                public void Callback(Exception ex, DriverBadge badge) throws Exception {
        ...
                    driverBadge = badge;
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }


        return driverBadge;
    }

我希望在回调DriverBadge badge中从服务器接收到的返回对象,但我不能。 driverBadge = badge;不起作用,因为driverBadge不是最终的,如果最后的想法说“无法为最终变量赋值”

2 个答案:

答案 0 :(得分:1)

无法在内联类中分配本地引用。

如果您希望 driverBadge 可分配,请将其设为全局。

答案 1 :(得分:0)

您无法在内联类中分配本地引用。

如果要在内联类中使用本地引用,则该引用应为final,这意味着无法重新分配。

此外,代码的逻辑是错误的,updateDriverBadges可能会在调用内联IRemoteCallback之前返回,这样它就会返回一个永不分配的引用。< / p>