有人面临这样的问题吗?
一些标有警告“该字段永远不会在本地读取”的字段:
但是当我禁止警告时,Eclipse 开始声称这是不必要的:
结果,我无法摆脱警告。
Eclipse SDK 3.6.2
编辑:
BlockBase 类是抽象的。但是向abstract
类添加关键字并将构造函数可见性更改为protected
不会改变任何内容。我猜想这种行为的真正原因是类市场是私有的,因此编译器假定应该从类可见性区域内部访问字段。它没有考虑到这些字段可能会从具有另一种可见性 ( public class DataBlock extends BlockBase
) 的子项访问。
我将BlockBase
可见性更改为protected
,它解决了问题。我不喜欢将其更改为 public,因为它会导致BlockBase
从父类外部可见,但是将可见性更改为protected
不会改变任何内容,因为我的父类没有继承类。
但无论如何,这种编译器行为是不正确的。
编辑 2
-或者-
如何重现问题
1.第一个文件:
public class testClass {
private abstract class x
{
public int theProblem;
}
public class y extends x
{
}
}
2.第二个文件:
public class anotherClass {
public void accessToTheProblem()
{
testClass.y a = (new testClass()).new y();
a.theProblem = 5;
Log.i("TEST", "See, I can read theProblem: " + a.theProblem);
}
}
在 Eclipse SDK 3.6.2 下,您将看到theProblem
带有警告的声明市场:
该字段永远不会在本地读取