2011-09-15 66 views
9

IntelliJ IDEA 10.5 (có thể là vấn đề này).Làm cách nào để di chuyển phương thức chính sang một lớp khác trong Scala?

Tôi mới sử dụng Scala, vì vậy tôi đã bắt đầu một cách khiêm nhường. Tôi đã tạo một tệp với hai lớp - MainApp trống và một lớp khác, HelloWorld với phương thức main.

Tôi biên dịch và thực hiện - IntelliJ tự động phát hiện HelloWorld là lớp chính. Đó là OK.

Sau đó, tôi đã chuyển phương thức chính sang MainApp và xóa lớp HelloWorld (sau đó trống). Khi tôi cố gắng chạy nó, IntelliJ vẫn gắn bó với HelloWorld. Vì vậy, tôi đã cấu hình lại dự án và chọn MainApp làm lớp chính.

Tôi cố gắng để chạy nó với kết quả như vậy:

MainApp phương pháp chính nên tĩnh

Tôi hoàn toàn bối rối. Trước hết, Scala không có phương thức tĩnh. Thứ hai, tại sao nó không biên dịch ngay bây giờ, khi nó được biên dịch trước (với lớp HelloWorld). Tôi cho rằng yêu cầu duy nhất là có một phương pháp chính.

Cảm ơn bạn trước sự giúp đỡ của bạn.

Xin lưu ý: Tôi biết tôi có thể bắt đầu một dự án mới từ đầu để tránh những vấn đề hoàn toàn, nhưng tôi muốn tìm hiểu điều gì đó, ví dụ: nhận biết những gì đang xảy ra, và sửa chữa dự án này.

+0

Vui lòng đăng mã của MainApp. – jpalecek

Trả lời

11

các phương pháp tĩnh trong Java gần tương ứng với các phương thức singleton trong Scala. Bạn cần có

object MainApp { 
    def main(args : Array[String]) = ... 
} 

trong mã của bạn, chứ không phải class MainApp.

+0

Cảm ơn bạn rất nhiều, sai lầm ngu ngốc của newbie ;-) – greenoldman

Các vấn đề liên quan