Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在使用领域时,如何定义更通用的类和接口?_Java_Android_Realm - Fatal编程技术网

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);
        }
    });
}