在java错误中创建新对象

时间:2014-03-31 14:16:39

标签: java brackets

我在主要代码中写了这段代码:

if (startAmount>0) //create new cashier object with or without a start amount
    Cashier newCashier = new Cashier(startAmount);
else Cashier newCashier = new Cashier();

并且第二行和第三行出现编译错误:

Multiple markers at this line
    - Cashier cannot be resolved to a variable
    - Syntax error on token "newCashier", delete

Multiple markers at this line
    - Cashier cannot be resolved to a variable
    - Syntax error, insert "AssignmentOperator Expression" to complete 
     Assignment
    - Syntax error, insert ";" to complete Statement

但是当我用括号写这样的代码时:

if (startAmount>0)//create new cashier object with or without a start amount
{
    Cashier newCashier = new Cashier(startAmount);
}
else{ Cashier newCashier = new Cashier();}

似乎没关系,没有编译错误。 有人可以帮助我理解为什么吗?

2 个答案:

答案 0 :(得分:3)

为什么要为newCachier引用创建阴影变量, 你宁愿这样做

Cashier newCashier = null;
if (startAmount>0) //create new cashier object with or without a start amount
    newCashier = new Cashier(startAmount);
else 
     newCashier = new Cashier();

答案 1 :(得分:0)

添加花括号总是更好。因为在扩展代码时不会忘记添加它们,否则会导致奇怪的行为。

我认为您对第一个问题的例外可能会因为您忘记将您的其他声明放入新行,但我不确定。