Java 在使用领域时,如何定义更通用的类和接口?
我正在尝试编写一个函数来获取游戏列表,并使用回调来加载结果。这就是我现在拥有的:Java 在使用领域时,如何定义更通用的类和接口?,java,android,realm,Java,Android,Realm,我正在尝试编写一个函数来获取游戏列表,并使用回调来加载结果。这就是我现在拥有的: public void getAllGames(OrderedRealmCollectionChangeListener<RealmResults<Game>> callback) { realm.where(Game.class).findAllSortedAsync("startTime").addChangeListener(callback); } Derp,我应该做的就是
public void getAllGames(OrderedRealmCollectionChangeListener<RealmResults<Game>> callback) {
realm.where(Game.class).findAllSortedAsync("startTime").addChangeListener(callback);
}
Derp,我应该做的就是在
getAllGames
函数中编写回调行为:
public void getAllGames(SomeListener<List<Game>> callback) {
realm.where(Game.class).findAllSortedAsync("startTime").addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Game>>() {
@Override
public void onChange(RealmResults<Game> collection, OrderedCollectionChangeSet changeSet) {
callback.callback(collection);
}
});
}
public void getAllGames(SomeListener回调){
realm.where(Game.class).findAllSortedAsync(“startTime”).addChangeListener(新OrderedRealmCollectionChangeListener()){
@凌驾
更改后的公共void(RealmResults集合、OrderedCollectionChangeSet变更集){
回调。回调(集合);
}
});
}
回答错误,如果findAllSortedAsync()
返回的变量获得GCd,则将永远不会调用更改侦听器。好的,但如果是这样,无论您如何编写代码,您都无法保证您提供的任何侦听器都是正确的,因为您如何确保某些内容从未获得GC?您可以,但是我还是有点担心,在最初调用getAllGames()
之后,您是如何监听所提供的RealmResult发生的更改的。哦,您的意思是我应该保留RealmResult
返回的findAllSortedAsync
,并相应地添加回调?是的,这正是我的意思
public void getAllGames(SomeListener<List<Game>> callback) {
realm.where(Game.class).findAllSortedAsync("startTime").addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Game>>() {
@Override
public void onChange(RealmResults<Game> collection, OrderedCollectionChangeSet changeSet) {
callback.callback(collection);
}
});
}