亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java 中使用 scheduleAtFixedRate 遍歷列表

在 Java 中使用 scheduleAtFixedRate 遍歷列表

FFIVE 2023-06-08 14:48:21
我正在嘗試根據用戶可以設置的計時器遍歷列表。但是我找不到在TimerTaskrunnable中做這件事的好方法??傮w思路可以在我下面分享的代碼中找到。Announcements是List一個List<String>。在每個間隔上,我都想announcement從中獲取下一個間隔announcements并顯示其中的字符串。除了計時器超過多個,我已經完成了所有工作announcements: timer.scheduleAtFixedRate(new TimerTask() {        int iterator = 0;        @Override        public void run() {            List<String> announcement = announcements.get(iterator);            for (String line : announcement) {                Bukkit.broadcastMessage(line);            }            iterator++;            if(iterator > announcements.size()){                iterator = 0;            }        }    }, 0, (int)config.get("interval")*1000);使用我發布的代碼,我得到了一個IndexOutOfBoundsException,它甚至從不發布任何消息。如果我刪除迭代器代碼,它將announcement無休止地顯示第一個。
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您有錯誤的以下情況:

if(iterator?>?announcements.size())

在這種情況下,超出了列表的大小,因此IndexOutOfBoundsException被拋出。但是條件應該檢查是否iterator大于或等于列表的大?。?/p>

if(iterator?>=?announcements.size())


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號