Java - 删除 "Variable",保留有副作用的分配

标签 java android variables enums

我开始为 Android 开发(我开始思考,这值得吗!)。 Eclipse 也一直给我很多奇怪的警告和错误!这是一个让我在过去两个小时里很沮丧但在谷歌上没有运气的例子:

private String alertTitle= null;

有一个!在它旁边标记说删除“alertTitle”,保留具有副作用的分配。这是什么?!我正在完全按照 Java 状态定义一个变量。我稍后使用变量:

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

另一个有点相似的是定义枚举"

public enum MyStyles {
     aStyle;
}

public MyStyles myStyle = aStyle;

这让Eclipse很生气!

最佳答案

您可能通过给变量赋值来使用变量名,但您没有使用存储在变量中的值。为此,您必须使用变量名来检索存储的值,并在代码中的某处使用此检索到的值执行某些操作。

当值从未检索(或者更一般地,永远不可能检索它*)时,Eclipse 将变量标记为未使用。这意味着您只是为它赋值,但绝不会在任何地方使用它们。这使得该变量成为不必要的内存占用,因此发出警告。

* publicprotected 变量不会收到警告,因为它们可以在其他类中检索,即使它们未在声明它们的类中检索到,即使它们目前从未在任何类中检索到(将来可能由于库的使用而发生)。

对于enum,它应该是:

public MyStyles myStyle = MyStyles.aStyle;

这是因为 enum 有点像类,常量的行为类似于类中的静态变量。 (这只是一个类比,并非精确的语言定义。)您可以像从定义为 static 的外部类中检索变量一样检索枚举常量。

关于Java - 删除 "Variable",保留有副作用的分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16963690/

相关文章:

java - 在 if else 中初始化变量但不起作用,如何正确初始化它们?

c++ - 如何使用 C++ 在注册表中插入变量值?

java - AspectJ - 方法参数的更改值

java - 如何在Java方法中交换两个int的值?

java - 如果事件调度线程没有暂停,模式对话框如何等待?

java - 计算整数的二进制根(java)

java - Firebase 值未更新

android - 为什么android的String.format狗慢?

android - 未应用更改 CircularProgressIndicator 宽度或高度

javascript - 使用复选框添加到 JavaScript 中的字符串