我有以下代码片段,其中一些字符串在if块中初始化:
String serialmask = request.getParameter( "serialmask");
String serialincrement = request.getParameter( "serialincrement");
if (serialmask == "1") {
String tserialmask = "aaa########";
}
else {
String tserialmask = "";
}
if (serialincrement == "1") {
String tserialincrement = "aaa^^^^^^^^";
}
else {
String tserialincrement = "";
}
out.println(
itemimport(
partnumber,
itemcost,
itemlistprice,
itemdescription,
PurchProdLineKey,
UnitMeasKey,
itemclasskey,
trackmethod,
tserialmask,
tserialincrement
)
);
Run Code Online (Sandbox Code Playgroud)
我得到的错误"cannot find symbol"
symbol : variable tserialmask在out.println(itemimport(....tserialmask,tserialincrement));声明中.
我尝试在if块之外声明变量,这似乎会带来更多的错误,说它已经被声明了.
您需要先声明变量,然后再分配它.这是版本tserialincrement(同样适用于tserialmask)
String tserialincrement;
if (serialincrement == "1")
{
tserialincrement = "aaa^^^^^^^^";
}
else
{
tserialincrement = "";
}
Run Code Online (Sandbox Code Playgroud)
但是,这有两个问题:
equals您可以使用条件运算符在一个语句(每个变量)中执行此操作:
String tserialmask = "1".equals(serialmask) ? "aaa########" : "";
String tserialincrement = "1".equals(serialincrement) ? "aaa^^^^^^^^" : "";
Run Code Online (Sandbox Code Playgroud)另外,我建议使用更好的变量名,使用Pascal大小写(例如serialMask)和比"t"更有用的东西作为前缀.(那是什么意思?)
| 归档时间: |
|
| 查看次数: |
6412 次 |
| 最近记录: |