gpt4 book ai didi

java - GWT AsyncCallback 不填充静态成员

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:27 24 4
gpt4 key购买 nike

我有一个 AsyncCallback 调用,它联系我的 GWT-RPC 服务并检索一些数据。我试图将该数据存储到一个类中,该类具有一个静态方法来存储查询结果。但是,我注意到数据没有填充到静态数据成员中。如果我通过在 AsyncCallback 调用中放置 SC.logWarn(...) 来“减慢”AsyncCallback 调用,则静态数据成员将被正确填充。

final AsyncCallback<Set<MyData>> dataCallback =
new AsyncCallback<Set<MyData>>()
{
@Override
public void onSuccess(Set<MyData> aDataType)
{
for (MyData data : aDataType)
{
String someData = aDataType.getData();

Record rec = new Record();
rec.setAttribute("data", someData);
getDataSource().addData(rec);
}
LocalUiCache.setLocalCache(new ResultSet(getDataSource()));
}
};
MyDataService.RPC.getInstance().getData(dataCallback);

...

public class LocalUiCache
{
private static ResultSet localCache;

/**
* @return the localCache
*/
public static ResultSet getLocalCache()
{
return localCache;
}

/**
* @param aLocalCache the localCache to set
*/
public static void setLocalCache(ResultSet aLocalCache)
{
localCache = aLocalCache;
}
}

最佳答案

我对此不确定,但我认为 SmartGWT 不会快速重新加载您的更改。您可以尝试调整数据源缓存或显式调用 invalidate方法。

其他建议肯定会起作用,但这是“肮脏的黑客”。您可以放入异步回调预定调用:

new Timer() {    
public void run() {
LocalUiCache.setLocalCache(new ResultSet(getDataSource()));
}
}.schedule(50);

关于java - GWT AsyncCallback 不填充静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com