benutze () von Java

8

Ich benutze Akka von Java. Gemäß der Dokumentation verwendet context.become() Procedure<Object> als Parameter. Tatsächlich erwartet es PartialFunction<Object, BoxedUnit> was scheinbar automatisch mit vielen Methoden mit seltsamen Namen generiert wird.

Was ist der richtige Weg, wird () aus Java zu verwenden?

PS   Ich benutze Akka 2.0.3

Aktualisierung: Es sieht so aus, als gäbe es zwei Methoden: context () und getContext (). Der erste gibt ActorContext zurück und der zweite gibt UntypedActorContext zurück. UntypedActorContext hat become(Procedure<Object>) .

    
aav 04.02.2013, 12:05
quelle

2 Antworten

8

Sie verwechseln Akka Java und Scala API. Technisch können Sie Scala-Bibliotheken wie Akka aus Java-Code verwenden, aber oft ist es ausführlich und umständlich. Das Akka-Team entschied sich daher für die Entwicklung separater APIs - nativ in Scala und Java-Adaptern.

In der Scala-API erweitern Sie akka.actor.Actor mit a context -Feld vom Typ akka.actor.ActorContext . Diese ActorContext.become() akzeptiert PartialFunction , was eine Scala-spezifische Klasse ist .

Andererseits erweitern Sie in Java API akka.actor.UntypedActor mit (Java-ähnlicher) Methode getContext() , Rückgabe akka.actor.UntypedActorContext . Dieser akzeptiert akka.japi.Procedure .

Um es kurz zu machen: Wenn Sie Java API verwenden, bleiben Sie dabei. Es gibt eine klare Unterscheidung zwischen Scala und Java-Dokumentation.

    
Tomasz Nurkiewicz 04.02.2013, 16:39
quelle
0

Es gibt viele gute Beispiele dafür, wie man das auch in Java macht. Dieses Beispiel hilft hoffentlich:

%Vor%

} }

    
stillLearning 25.09.2017 17:49
quelle

Tags und Links