Scala Lazy Val Pregunta

Tengo un escenario en el que tengo algunos objetos que necesitan tomar referencias el uno del otro. La única forma en que puedo compilar esto es usarperezoso

class A(b:B)
class B(a:A)
lazy val a:A = new A(b)
lazy val b:B = new B(a)

Puedo hacer lo mismo con algunos actores, y hacer que compile también

    abstract class Message
    case class Message1 extends Message
    case class Message2 extends Message

    class Actor1(otherActor:Actor) extends Actor {
        def act() {
            loop {
                react {
                    case Message1 =>
                        println("received message1")
                        otherActor ! Message2
                    case _ =>
                }
            }
        }
    }

    class Actor2(otherActor:Actor) extends Actor {
        def act() {
            loop {
                react {
                    case Message2 =>
                        println("received message2")
                        otherActor ! Message1
                    case _ =>
                }
            }
        }
    }

    lazy val actor1:Actor = new Actor1(actor2)
    lazy val actor2:Actor = new Actor2(actor1)

Sin embargo, cuando agrego lo siguiente:

    actor1.start
    actor2.start
    actor1 ! Message1

Obtuve el siguiente error:

Excepción en el hilo "main" java.lang.NoClassDefFoundError: com / fictitiousCompany / stackOverflowQuestion / Test Causado por: java.lang.ClassNotFoundException: com.fictitiousCompany.stackOverflowQuestion.Test en java.net.URLClassLoader $ 1.run (UR:20lassLoader.ja:20 ) en java.security.AccessController.doPrivileged (Método nativo) en java.net.URLClassLoader.findClass (URLClassLoader.java:190) en java.lang.ClassLoader.loadClass (ClassLoader.java:307) en sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) en java.lang.ClassLoader.loadClass (ClassLoader.java:248)

Estoy usando el complemento Scala Eclipse 2.8.1.

Respuestas a la pregunta(1)

Su respuesta a la pregunta