无法从对象启动

时间:2014-03-25 06:13:45

标签: scala

我使用的是当前版本的TypeSafe Scala / eclipse IDE。我有一个对象(我称之为PositionObj给它一个唯一的名称)。 PositionObj包含main方法。然而,当我尝试Run as > Scala application时,我收到一条弹出消息:

PositionObj needs to be an 'object' (it is currently a 'class').

实际上它不是一个类,并且没有具有该名称的类。有关为什么会发生这种情况以及如何解决这个问题的任何想法?

以下是相关代码。

object PositionObj { ...

    def main(args: Array[String] = Array[String]()): Unit = {
       // This is just to see if anything happens.
       println(position(3).p1Rqmts.keys.head)
    }
    ...

感谢。

2 个答案:

答案 0 :(得分:0)

根据您的回答代码,尝试删除默认参数,因为这可能会创建不同的代码签名

答案 1 :(得分:0)

我之前应该这样做,但现在我注意到有一个编译器错误消息,说编译器无法处理代码,因为它对于一个方法来说太大了。这与我对这个问题的经验一致。当我注释掉一个大的数据表时,一切正常。所以我现在确信问题只是程序的组织方式使得程序太大而无法由编译器处理。

我通过将数据表分成多个部分并将每个部分包含在一个单独的对象中解决了这个问题。即使所有对象都包含在整个程序中,这仍然有效。这不是整个计划的规模;这是大块的大小。

编译器错误消息有点误导,因为它说问题是方法太大了。实际上,我的数据表是val中的object而不是方法。但正如我所说,将其切割成单独的对象并将它们与软件相结合解决了这个问题。