Установить пределы диапазона для DateTimeItem

Эта ошибка возникает при переполнении циклов цикла. Давайте рассмотрим простой пример:

class demo{
  public static void main(String a[]){

    int[] numberArray={4,8,2,3,89,5};

    int i;

    for(i=0;i<numberArray.length;i++){
        System.out.print(numberArray[i+1]+"  ");
    }
}

Сначала я инициализировал массив как «numberArray». то некоторые элементы массива печатаются с использованием цикла. Когда цикл запускает время «i», напечатайте элемент (numberArray [i + 1] .. (когда значение i равно 1, будет напечатан элемент numberArray [i + 1].) Предположим, что, когда i = (numberArray. length-2), последний элемент массива печатается. Когда значение «i» переходит к (numberArray.length-1), нет значения для печати. ​​В этот момент происходит «ArrayIndexOutOfBoundsException». Я надеюсь, что вы можете получить idea.thank you!

1
задан Tomáš Zato 7 March 2019 в 18:40
поделиться

1 ответ

Настройка диапазона просто означает, что отключение даты вне этого диапазона. Таким образом, процесс такой же, как и в связанном ответе . Вы можете создать служебный метод для создания фильтров проще. Например, configureShowRangeHandler допускает Predicate<Date>, который отключит дату, если предикат вернет false. enableUntilToday - простой пример ограничения выбираемых дат до сегодняшнего дня.

{
    DatePicker dp = new DatePicker();
    Predicate<Date> enableUntilTodayDates = d -> !d.after(new Date());
    configureShowRangeHandler(dp, enableUntilTodayDates);
}

static HandlerRegistration configureShowRangeHandler(DatePicker dp, Predicate<Date> fn) {
    return dp.addShowRangeHandler(ev -> {
        for (Date t = copyDate(ev.getStart()); t.before(ev.getEnd()); addDaysToDate(t, 1)) {
            dp.setTransientEnabledOnDates(fn.test(t), t);
        }
    });
}
  • copyDate и addDaysToDate статически импортированы из CalendarUtil
0
ответ дан Ignacio Baca 7 March 2019 в 18:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: