java-remove“变量”,保留有副作用的赋值

1cosmwyk  于 2021-06-30  发布在  Java
关注(0)|答案(5)|浏览(386)

我开始为android开发(我开始思考,它值得吗!)。eclipse也一直给我很多奇怪的警告和错误!在过去的两个小时里,有一个问题让我一直很沮丧,因为在谷歌上没有运气:

private String alertTitle= null;

这里有一个!在旁边做个标记,去掉“alerttitle”,保留有副作用的作业。这是什么?!我定义的变量与java状态完全相同。稍后我将使用该变量:

public ASAlertDialog setTitle(String title) {
        this.alertTitle = title;
        return this;
    }

另一个有点类似的是定义enum“

public enum MyStyles {
     aStyle;
}

public MyStyles myStyle = aStyle;

这让eclipse很生气!

btqmn9zl

btqmn9zl1#

尝试

public enum MyStyles {
     aStyle;
}

public MyStyles myStyle = aStyle;

关于您的字符串,也许eclipse会通知您,您的变量从未被使用过。
顺便说一句,

private String alertTitle;

默认为null,那么为什么要设置“=null”?

e0uiprwp

e0uiprwp2#

关于你的第一个问题:
这只是意味着你的变量没有被使用,所以你可以安全地删除它。一旦开始在代码中使用变量,警告将消失。副作用解释如下:
http://www.cs.umd.edu/~clin/morejava/intro/assign.html
勾选“赋值是表达式吗?”
关于你的第二个问题:
没有';'在定义枚举时。检查此项:
http://docs.oracle.com/javase/tutorial/java/javaoo/enum.html

2guxujil

2guxujil3#

您可以通过给变量赋值来使用变量名,但不使用存储在变量中的值。为此,必须使用变量名来检索存储的值,并在代码中的某个位置对检索到的值进行处理。
当从未检索到该值(或者更一般地说,永远不可能检索到它*)时,eclipse将该变量标记为未使用。这意味着你只是在给它赋值,却从不在任何地方使用它们。这使得变量成为不必要的内存占用,因此出现警告。

  • public 以及 protected 变量不会得到警告,因为它们可以在其他类中检索,即使它们没有在声明它们的类中检索,即使它们当前从未在任何类中检索(由于库的使用,将来可能会发生这种情况)。

对于 enum ,应该是:

public MyStyles myStyle = MyStyles.aStyle;

这是因为 enum 类似于类,常量的作用类似于类中的静态变量(这只是一个类比,不是精确的语言定义。)检索枚举常量的方法与从定义为的外部类检索变量的方法相同 static .

zd287kbt

zd287kbt4#

对于枚举,需要将其声明为

public enum MODE
{
   NO_ASYNC_TASK,
   NO_DOWNLOADED_DRAWABLE,
   CORRECT
};

有关更多信息,请查看我的答案
警告是因为你可能没有使用 alertTitle 声明后的变量。

kb5ga3dv

kb5ga3dv5#

您的变量没有被使用,所以eclipse会通知您这一点,因此您会得到消息 Remove "alertTitle", keep assignments with side effects

相关问题