【问题标题】:Java - "local variable is not used"Java - “未使用局部变量”
【发布时间】:2021-02-10 07:28:47
【问题描述】:

我有这个问题,我在 forloop 之外初始化一个变量。然后在 forloop 内部尝试更新此变量的值,但每次我“未使用局部变量”。我尝试了一个简单的示例(如下),但问题仍然存在。 Ret 在我的编译器中突出显示并显示错误消息。我不明白为什么我不能再访问循环内的变量了。这可能是因为我在课堂其他地方的方法中缺少一个括号吗?

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

我想知道是否有人可以帮助我解决这个问题。我真的很感激。谢谢!

【问题讨论】:

  • 在return语句中使用它return ret;
  • 一个问题:你为什么声明ret?你为什么要修改它?
  • 这是警告而不是错误。我认为它告诉您您正在计算 ret 中的某些内容并将其丢弃而不是归还(正如我认为您的意图)。所以也许你应该注意:-)
  • FWIW - 使用 javac (Java 8) 编译时没有收到此消息。
  • 为什么返回""?

标签: java variables local-variables


【解决方案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】:

    我怀疑您的 IDE 或编译器注意到您在本地 var ret 中构建了文本,但您从未使用过该文本。该构建文本被丢弃,并且您返回一个空字符串。您的工具会提醒您注意这些废话。

    另外,你没有使用传递给你的静态方法的参数,更多的废话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      相关资源
      最近更新 更多