我重构代码,我想创建工厂,使用方法与服务器一起工作。 我有好友:
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
不是最终的,如果最后的想法说“无法为最终变量赋值”
答案 0 :(得分:1)
如果您希望 driverBadge 可分配,请将其设为全局。
答案 1 :(得分:0)
您无法在内联类中分配本地引用。
如果要在内联类中使用本地引用,则该引用应为final
,这意味着无法重新分配。
此外,代码的逻辑是错误的,updateDriverBadges
可能会在调用内联IRemoteCallback
之前返回,这样它就会返回一个永不分配的引用。< / p>