java中的异步服务
我对此异步调用有问题:java中的异步服务,java,hibernate,asynchronous,service,Java,Hibernate,Asynchronous,Service,我对此异步调用有问题: public class myClass { protected final int idObj; public void myMethod() { myService.getObj( new AsyncCallback<List<Object>>() { @Override public void onFailure(Throwable caught) {
public class myClass {
protected final int idObj;
public void myMethod() {
myService.getObj( new AsyncCallback<List<Object>>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(List<Object> listObject) {
idObj = listObject.get(0).getIdObj();
}
});
if(idObj == 1) {
//do something
}
}
}
公共类myClass{
受保护的最终int idObj;
公共方法(){
getObj(新的AsyncCallback(){
@凌驾
失败时的公共无效(可丢弃){
}
@凌驾
成功时公共无效(列表对象){
idObj=listObject.get(0.getIdObj();
}
});
if(idObj==1){
//做点什么
}
}
}
值idObj
在第一次时等于零,并且此if块未执行。
如何避免这种情况?这是一个异步调用,这意味着在onSuccess方法中执行的代码将在以后执行。 因此执行if语句,但此时您的值仍然为0 您应该将if语句放在
onSuccess
方法中