TypedActor.getContext().sender()
期待どおりに動作しない既知のケースはありますか?
ファイアアンドフォーゲットモードでは、デフォルトでデフォルトになっていることは知っていますが、deadLetters
別の問題が発生しています。
// inside MainActor
IPrintingActor printingActor = create(IPrintingActor.class, PrintingActor.class);
printingActor.blockingPrintln("foo");
上記は通常の呼び出しcreate
の単なるラッパーですtypedActorOf
// inside PrintingActor
@Override
public boolean blockingPrintln(String string)
{
System.out.println(TypedActor.context().sender() + " says " + string);
return true;
}
出力は
俳優[akka:// MySystem / user /$b]はfooと言います
ただし、このアクターは実際にはTypedActor.context()。self()と同じです。
sender()呼び出しがself()と同じものを返す理由はありますか?メインアクターの印刷ステートメント
アクター[akka:// MySystem / user / $ a]
MainActorと
アクター[akka:// MySystem / user / $ b]
PrintingActorのために。ただし、PrintingActor内では、両方とも次のように印刷されます。
アクター[akka:// MySystem / user / $ b]
よろしくお願いします!