2014-03-25 10 views
1

현재 TypeSafe Scala/eclipse IDE 버전을 사용하고 있습니다. 객체가 있습니다.이 객체를 고유 한 이름을 지정하기 위해 PositionObj이라고합니다. PositionObjmain 방법을 포함합니다. 내가 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) 
    } 
    ... 

감사합니다. 에

+1

'PositionObj'의 관련 부분을 게시 할 수 있습니까? (최소한 객체 선언 + 메인) – gzm0

답변

0

을 기반으로 대답-이 다른 코드 서명을 생성 할 수 있기 때문에 코드, 기본 인수를 제거하려고

0

내가 전에 이런 짓을 할 뻔했지만 지금은 컴파일러 에러 메시지가 있음을 알 그 컴파일러는 메서드에 비해 너무 크기 때문에 코드를 처리 할 수 ​​없다고 말합니다. 그것은 그 문제에 대한 나의 경험과 일치합니다. 큰 데이터 테이블을 주석 처리하면 모든 것이 잘 동작합니다. 그래서 저는 이제 문제가 단순히 프로그램이 컴파일러가 처리하기에는 너무 큰 조각으로 구성되었다는 것을 확신했습니다.

나는 내 데이터 테이블을 여러 부분으로 잘라 내고 각 부분을 별도의 개체에 포함시켜 문제를 해결했습니다. 모든 객체가 전반적인 프로그램에 포함 되었더라도 작동했습니다. 전반적으로 프로그램 규모가 아니 었습니다. 그것은 큰 덩어리의 크기였습니다.

컴파일러 오류 메시지는 메서드가 너무 커서 문제가 발생했다는 점에서 다소 오해의 소지가있었습니다. 사실, 내 데이터 테이블은 에 val이고 메소드 내에서가 아닙니다. 그러나 내가 말했듯이, 그것을 분리 된 객체로 잘라내어 소프트웨어와 결합하여 문제를 해결했습니다.