![](/img/trans.png)
[英]Intellij IDEA: How to view *entire page* of javadoc for a class (e.g. Color.html)?
[英]Local variable is redundant JetBrains IDEs (e.g. IntelliJ IDEA)
public static double getAmount(){
Scanner reader = new Scanner(System.in);
System.out.println("random text");
double amount;
return (amount = reader.nextDouble());
}
IntelliJ 在上面的代碼中給了我這個警告:
局部變量 'amount' 是多余的
為什么?
在方法體中(在 { 和 } 之間)聲明的任何變量都將在該方法結束時被刪除(垃圾收集)。 (除非您將其分配給未在方法主體中創建的內容)
您在運行時創建變量“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 也應該為您提供一個解決方案,就像我剛才所做的那樣。 一個例子:
它告訴您,您可以簡單地返回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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.