首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java领域超出范围异常

Java领域超出范围异常
EN

Stack Overflow用户
提问于 2018-06-14 22:34:04
回答 1查看 1.3K关注 0票数 1
代码语言:javascript
复制
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
Out of range in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp line 108(requested: 0 valid: 0) io.realm.internal.OsResults.nativeGetRow

MainActivity.randomizeEvents (MainActivity.java:1600)
...MainActivity$42.run (MainActivity.java:1739)

randomizeEvents()

代码语言:javascript
复制
public void randomizeEvents() {
    Realm nrealm;
    nrealm = Realm.getDefaultInstance();
    RealmResults<Event> eventList = nrealm.where(Event.class).equalTo("theevent", "theevent").findAll();
    if(eventList.size() != 0) {
        evt = eventList.get(0); <<<<<<<<<line 1600
        nrealm.beginTransaction();
        evt.setDurations();
        nrealm.commitTransaction();
    }

}

方法启动可运行的

代码语言:javascript
复制
RealmResults<Event> eventList = realm.where(Event.class).equalTo("theevent", "theevent").findAll();
    evt = eventList.get(0);

    if(!eventTimerRunning) {
        runnable = new Runnable() {
            public void run() {
                if(!realm.isClosed()) {
                    eventTimerRunning = true;
                    randomizeEvents(); <<<<<<<<line 1739
                    handler.postDelayed(runnable, 30000);
                }
            }
        };
        handler.postDelayed(runnable, 5000);
    }

我在不同的地方得到了这个错误,但是他们都在做同样的事情。我有一个用于不同事物的Runnable。例如,这个方法将在初始延迟后每隔30分钟运行一次。由于在UI线程上使用一个实例和在Realm上使用一个实例等错误,我在Runnable中使用了一个新实例。

if语句是if(eventList.size() != 0),所以大小是1+。为什么eventList.size()等于或更多,但仍然得到eventList.get(0)为null的错误?

EN

回答 1

Stack Overflow用户

发布于 2018-06-15 05:57:44

你应该使用

代码语言:javascript
复制
eventList.size() 

而不是

代码语言:javascript
复制
eventList.size
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50866836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档