Java — «локальная переменная не используется»

#java #variables #local-variables

#java #переменные #локальные переменные

Вопрос:

У меня есть эта проблема, когда я инициализирую переменную вне forloop. А затем внутри forloop попробуйте обновить значение этой переменной, но каждый раз, когда я «локальная переменная не используется». Я попробовал простой пример (ниже), и проблема все еще существует. Ret выделяется в моем компиляторе и отображается сообщение об ошибке. Я не понимаю, почему я больше не могу получить доступ к переменным внутри своих циклов. Возможно, это связано с тем, что я пропустил скобку где-то в моих методах где-то еще в классе?

 public static String test(String input) {
        String ret = "";
        for(int i=0;i<5; i  ) {
            ret  = "m";
        }
        return "";
        
    }
 

Мне было интересно, может ли кто-нибудь помочь мне с этим. Я был бы очень признателен. Спасибо!

Комментарии:

1. используйте ее в инструкции return return ret;

2. Один вопрос: почему вы объявили ret ? И почему вы ее модифицируете?

3. Это предупреждение, а не ошибка. Я думаю, это говорит вам, что вы что-то вычисляете ret и выбрасываете, а не возвращаете (как, я думаю, вы намеревались). Так что, возможно, вам стоит обратить внимание 🙂

4. FWIW — я не получаю это сообщение при компиляции с javac помощью (Java 8).

5. Почему вы возвращаете «»?

Ответ №1:

Вы получаете это сообщение об ошибке, потому что вы создаете переменную ret, но не используете ее. Например, если вы используете переменную в операторе if, вы больше не получите ошибку.

 public static String test(String input) {
    String ret = "";
    for(int i=0;i<5; i  ) {
        ret  = "m";
    }
    if (ret.equals("mmmmm")){
       ret  ="";
    }
    return "";
    
}
 

Ответ №2:

Я подозреваю, что ваша среда разработки или компилятор замечают, что вы создаете текст в локальной переменной ret , но вы никогда не используете этот текст. Этот созданный текст отбрасывается, и вы возвращаете пустую строку. Ваши инструменты предупреждают вас об этой ерунде.

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