public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");
double amount;
return (amount = reader.nextDouble());
}
IntelliJ在上面的代码中给了我这个警告:
局部变量'数量'是多余的
为什么?
在方法主体内(在{和}之间)声明的任何变量将在该方法末尾删除(垃圾回收)。 (除非您将其分配给未在方法主体中创建的内容)
运行时,您正在创建变量“ 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只是告诉您,最后您的变量没有被使用(没有使用),因此可以安全地删除变量声明。
告诉您,您可以简单地返回reader.nextDouble()
,并且您不需要变量amount
。
因为您对此不做任何事情。该代码可以简化为:
public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");
return reader.nextDouble();
}
您可以做
return reader.nextDouble();
该变量声明和赋值正在占用内存。
尝试为多余的局部变量关闭检查模式。或者,您可以只做:
return reader.nextDouble();