Использование наборов API для перестановки

Чтобы убедиться, что скрипт продолжает работать, даже если есть ошибка, используйте блок try / except.

В блоке except, чтобы, как указано в вашем запросе, гарантировать, что код проверяет ошибку, снова и снова, вы будете использовать 'recursion функции', чтобы снова запустить функцию изнутри функции:

def periodic_task():
    log.msg("periodic task running")
    try:
       x = 10 / 0 # include 'API calls' here
    except: # include 'exception type'
       periodic_task()

Хотя, есть много подводных камней с функцией рекурсии , так что будьте осторожны!

6
задан Hooked 6 March 2015 в 04:39
поделиться

2 ответа

Arrays.asList не может использоваться с массивами примитивов. Используйте это вместо этого:

Integer[] randomizer = new Integer[] {200,300,212,111,6,2332}; 
Collections.shuffle(Arrays.asList(randomizer));

То же правило относится к большинству классов в платформе наборов, в которой Вы не можете использовать типы примитивов.

Исходный код (с int[]) скомпилированный штраф, но не работал, как предназначено, из-за поведения variadic метода asList: это просто входит в список с одним элементом, с int выстройте как его единственный участник.

18
ответ дан 8 December 2019 в 13:03
поделиться

Ответ Chris корректен.

Как я сказал в комментарии к ответу Chris, Ваш основной массив изменится соответственно, если arraylist не должен будет расти, и список создает новый и копирует объекты в него.

Можно хотеть сохранить ссылку на список и выполнить итерации по этому после вызова Arrays.asList, и не выполнить итерации по массиву после этого, выполнить итерации по Списку вместо этого.

0
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

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