gpt4 book ai didi

java - 局部变量是冗余的 JetBrains IDE(例如 IntelliJ IDEA)

转载 作者:行者123 更新时间:2023-12-03 08:56:15 24 4
gpt4 key购买 nike

public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");
double amount;
return (amount = reader.nextDouble());
}

IntelliJ 在上面的代码中给了我这个警告:

Local variable 'amount' is redundant



为什么?

最佳答案

在方法体中(在 { 和 } 之间)声明的任何变量都将在该方法结束时被删除(垃圾收集)。 (除非您将其分配给未在方法主体中创建的内容)

您在运行时创建变量“amount”:

 double amount;

此时,您已经创建了变量,但从未为其分配值。
你第一次使用这个变量是在你的 return 语句中:
return (amount = reader.nextDouble());

您应该做的是在与声明相同的行上分配变量:
public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");
double amount = reader.nextDouble();
return amount;
}

或者,更好的是,根本不使用该变量(尽管它可能会提高代码可读性,在这种情况下,可以提出有效的观点来保留它):
public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");

return reader.nextDouble();
}

为什么 Intellij 会警告我?
Intellij 只是告诉您,最终您的变量没有被使用(不是),因此删除变量声明是安全的。

但是,如果您将鼠标悬停在出现在代码行开头的小灯泡上,Intellij 也应该为您提供一个解决方案,就像我刚才所做的那样。
一个例子:
enter image description here

关于java - 局部变量是冗余的 JetBrains IDE(例如 IntelliJ IDEA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com