我在代码中的很多地方都看到了这个警告,因为我一直在使用的特定范例。在objectA中,我创建了objectB,而objectB做了很多必要的工作,但没有在其他任何地方引用。
我看到的这个问题的唯一答案是:
我在很多地方做的事情的例子。
class A {
B b;
public A() {
b = new B();
}
}
class B {
public B() {
Updater.RegisterForSuperImportantUpdates(this);
}
public void Update() {
// super important stuff happening here
....
}
}
这看起来像是一个有效的设计还是在这里有一种异味。抑制警告会很烦人,因为这种模式会经常被使用。
答案 0 :(得分:2)
如果您之后没有使用它,为什么要保留对b(B)的引用? 你不能在没有引用它的情况下新建它吗?
由于它似乎被这里未提及的第三类引用(Updater
),所以它不应该是GCeed。
答案 1 :(得分:-1)
这是一个有效的警告,根据清洁代码原则,你应该保持你的代码尽可能干净整洁,以便第二个将要修复代码的人不应该与代码中使用的未使用的变量混淆