首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:在主函数中创建新的自定义对象?

Java:在主函数中创建新的自定义对象?
EN

Stack Overflow用户
提问于 2013-09-15 00:53:36
回答 4查看 2.1K关注 0票数 0

我在类中创建了一个对象:

代码语言:javascript
复制
private class Viscosity{
    float magnitude;
    private Viscosity(float Magnitude){
        magnitude = Magnitude;
    }
}

在我的主要函数中,我尝试从文本文件中提取数据并创建一个新的粘滞对象,但似乎无法访问这个私有对象。

例如,我想将它添加到对象列表中:

代码语言:javascript
复制
listofObjects.add(new Viscosity(50.0f));

但我收到了一个错误:

无法访问类型的封闭实例。必须用ClassName类型的封闭实例来限定分配(例如,x.new A(),其中x是ClassName的实例)。

我怎样才能做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2013-09-15 00:55:53

如果该类不依赖于封闭实例,则需要声明该类static

代码语言:javascript
复制
 private static class Viscosity

或者,不要从静态main方法调用它,而是创建外部类的实例,并将代码移动到实例方法中。

但是,真的,为什么这必须是一个内在的阶级呢?为什么不是一个常规的(包-私有)类。如果您真的想要的话,甚至可以在同一个文件中声明它(但这也不是真正的建议)。

票数 1
EN

Stack Overflow用户

发布于 2013-09-15 00:58:57

您应该:

  • 使旅游成为一个非内部类。在它自己的文件中声明它,除非您有一个非常有说服力的理由让它成为一个内部类(您还没有对我们创建这个类)。
  • 公开它的构造函数。
票数 1
EN

Stack Overflow用户

发布于 2013-09-15 00:55:20

您的内部类需要访问封闭类的任何成员吗?如果不是,您可以将它变成一个静态类。

代码语言:javascript
复制
private static class Viscosity {
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18807889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档