2009-10-22 2 views
5

Простой вопрос. Могу ли я это сделать:Синглтон Скала актер?

object Xyz extends Actor { ... } 

or do Актеры должны быть классами с экземплярами?

+0

мысль: Если бы я не мог сделать это, я мог бы просто иметь 'object' который имеет актера в качестве члена ... – Joe

+0

мысль: почему бы не попробовать и см. –

ответ

6

Ключевое слово object по существу создает анонимный класс и один экземпляр этого класса. Так что да, этот код будет в порядке - Xyz будет ссылкой на объект, который является актером.

+0

Спасибо, вот что я подумал. Я попробовал это, и он скомпилировался отлично, но сообщения, похоже, не получают актер. – Joe

+0

Похоже, эта проблема не была связана с «объектом» или нет. Решаемые. – Joe

+1

с scala 2.8, я получаю эту ошибку: создание объекта невозможно, так как метод действует в признаке Реактор типа() Единица не определена – Aaron

2

Я хотел бы рекомендовать следующий «огонь и забыть» картина:

Actor.actor {DoStuff}

Ваша работа будет выполняться в отдельном потоке к выводу.

12

Объект, расширяющийся Actor работает отлично.

Возможно, вы забыли start актер? (Это ошибка, которую я сделал изначально)

object Xyz extends Actor { 
    start 

    ... 
} 
+3

Да, я забыл начать актер (но был слишком смущен, чтобы сказать ...). Благодаря! – Joe

+1

@Joe Возможно, вы должны отметить это как правильный ответ, чтобы помочь будущим посетителям – HRJ

+0

Hi HRJ. Трудный. Сначала Лачлан правильно ответил на вопрос. Причина, по которой я спрашивал, была мотивирована тем, что я не начал актера, но строго это не было в моем вопросе. Я думаю, что я буду придерживаться ответа Лаклана ради правильности, извините. – Joe

Смежные вопросы