使用后停用变量

时间:2014-10-19 02:58:32

标签: java encapsulation

是否有一些注释可以让我告诉java编译器 注释后不应该使用变量?谢谢 现代IDE的自动填充和复制粘贴功能,太容易介绍了 错误输入变量名称的错误。这样的注释将有助于在编译时检测这些错误中的某些错误(如果使用netbeans / eclipse等智能IDE,则会在打字时检测到)。 作为一个例子,我有以下字符串处理管道:

String input = ....
String pass1 = op1 (input);
...
String pass2 = op2 (pass1);
...
String pass3 = op3 (pass1); // typo: pass1 should be pass2
...
return pass3;

如果我可以在调用disable pass1的行之后说op2之类的内容, 调用op3的行中的拼写错误将被检测为pass1作为假设disable注释的结果将超出范围。

2 个答案:

答案 0 :(得分:3)

不,您无法在Java中停用变量。作为替代方案,重用变量,而不是创建新变量:

String input = ....
String currentPass = op1 (input);
...
currentPass = op2 (currentPass);
...
currentPass = op3 (currentPass);
...
return currentPass;

理论上,足够智能的IDE可以使用java annotations发出警告。但是,这是个坏主意。语法很难看,并且会将您绑定到特定的IDE。此外,没有Java IDE实现该功能'。

答案 1 :(得分:2)

你不能"停用"你描述/渴望的方式的变量。

但是,如果适当地设计块结构,则可以安排某些变量超出范围; e.g。

String input = ....
{
   String pass1 = op1 (input);
   ...
}
String pass2 = op2 (pass1);  // compilation error ... pass1 is out of scope.

目前还不清楚这是否足以让您获得足够的控制权来实现您的目标。但是,如果不是,那么我就无法想到任何可以在编译时工作的替代方案......


重用@Joshua描述的变量是另一种方法。它避免了问题而不是直接解决问题。