我在类中创建了一个对象:
private class Viscosity{
float magnitude;
private Viscosity(float Magnitude){
magnitude = Magnitude;
}
}在我的主要函数中,我尝试从文本文件中提取数据并创建一个新的粘滞对象,但似乎无法访问这个私有对象。
例如,我想将它添加到对象列表中:
listofObjects.add(new Viscosity(50.0f));但我收到了一个错误:
无法访问类型的封闭实例。必须用ClassName类型的封闭实例来限定分配(例如,x.new A(),其中x是ClassName的实例)。
我怎样才能做到这一点?
发布于 2013-09-15 00:55:53
如果该类不依赖于封闭实例,则需要声明该类static:
private static class Viscosity或者,不要从静态main方法调用它,而是创建外部类的实例,并将代码移动到实例方法中。
但是,真的,为什么这必须是一个内在的阶级呢?为什么不是一个常规的(包-私有)类。如果您真的想要的话,甚至可以在同一个文件中声明它(但这也不是真正的建议)。
发布于 2013-09-15 00:58:57
您应该:
发布于 2013-09-15 00:55:20
您的内部类需要访问封闭类的任何成员吗?如果不是,您可以将它变成一个静态类。
private static class Viscosity {
...https://stackoverflow.com/questions/18807889
复制相似问题