когда для инициализации переменной в java [duplicate]

Другой необычный подход, который работает для гетеро- и однородных списков целых чисел:

def unusual_flatten(some_list: list) -> list:
    cleaned_list = str(some_list).replace(("["), "").replace("]", "").split(",")
    return [int(item) for item in cleaned_list]

Применение в списке примеров ...

l = [[1, 2, 3], [4, 5, 6], [7], [8, 9], 10]

unusual_flatten(l)

Результат:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

5
задан Ivan 30 September 2012 в 13:57
поделиться

3 ответа

Нет, нет способа Java проверить все возможные пути кода для программы, чтобы определить, была ли инициализирована переменная или нет, поэтому она берет безопасный маршрут и предупреждает вас.

Нет, вам придется инициализировать вашу переменную, чтобы избавиться от этого.

5
ответ дан Keppil 24 August 2018 в 17:34
поделиться

Почему бы вам просто не использовать

void a ()
{
    int x;
    boolean b = false;
    if (Math.random() < 0.5)
    {
        x = 0;
        b = true;
        x++;
    }
    if (b) {
        //do something else which does not use x
    }
}

В коде, почему вы хотите использовать x вне первого блока if, вся логика с участием x может быть реализована в первом случае, если только блок, я не вижу случая, когда вам понадобится использовать другой if, чтобы использовать x.

EDIT: или вы также можете использовать:

void a ()
{
    int x;
    boolean b = (Math.random() < 0.5);
    if (b) {
         x=1
        //do something 
    }
}
1
ответ дан Ankur 24 August 2018 в 17:34
поделиться

Есть один:

void a () {
    if (Math.random() < 0.5) {
        int x = 1;
    }
}

Компилятор не отвечает за разработку и тестирование алгоритма. Вы.

Но, возможно, вам стоит предложить более практичный вариант использования. Ваш пример на самом деле не показывает, какова ваша цель.

2
ответ дан Matthieu 24 August 2018 в 17:34
поделиться
Другие вопросы по тегам:

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