永远不会读取局部变量xxx

时间:2011-07-23 18:55:09

标签: java android

这是我的代码:

boolean startGameBoolean;
Bundle extras = getIntent().getExtras();
extras.getInt("startGameBoolean");
if (startGameBoolean = true){
    counter.start();
}

Eclipse发出警告:“永远不会读取局部变量startGameBoolean”;但它是。 我从另一个意图中得到了布尔值。

我编辑了我的代码,我错过了一些,抱歉!

6 个答案:

答案 0 :(得分:10)

不应该是startGameBoolean = extras.getBoolean("startGameBoolean");吗?

在您提供的代码中,boolean startGameBoolean;未在任何地方使用。警告意味着虽然你声明了它,但它并没有在它所居住的地块中使用,因此可以(应该)被删除。

修改

看到您的添加后,您使用startGameBoolean,但是您已分配给它,而您应该与之进行比较:

if (startGameBoolean == true){
//                    ^
    counter.start();
}

另外,将getBoolean()的结果分配给我在第一个语句中写的变量。

答案 1 :(得分:5)

我冒昧地同意Eclipse,它没有被使用。您向我们展示的代码并没有在任何地方使用它。

<强>更新

该变量仍未使用,因为您在if条件下指定;你永远不会比较它(这就是你想要做的事情)。

更改

if (startGameBoolean = true){

if (startGameBoolean){

答案 2 :(得分:2)

if (startGameBoolean = true){

应该是..

if (startGameBoolean == true){

..还是更好..

if (startGameBoolean){

答案 3 :(得分:0)

Bundle extras = getIntent().getExtras();
boolean startGameBoolean = extras.getBoolean("startGameBoolean");

这样的东西?您无法使用boolean获取getInt()。也许,如果您正在处理int但值为01。然后,您应该将startGameBoolean的类型更改为int并使用getInt()获取,人们有时会这样做。

答案 4 :(得分:0)

我在Android上遇到了同样的问题。

您看到这些警告说“永远不会读取变量”的原因是因为您正在指定 RIGHT AFTER 创建它。尝试在类的开头创建变量,然后在OnCreate()或在首次创建类时调用的其他适当方法中分配它。

答案 5 :(得分:0)

我遇到类似的错误 ...此行

  

JLabel label = new JLabel("You have $" + amountInAccount + " in your account.");

我使用快速修复(Ctrl + 1)并选择删除'标签',保留副作用分配......

并且代码变为

  

new JLabel("You have $" + amountInAccount + " in your account.");