자바 Akka. 액터 동작을 여러 제네릭에 일치시키는 방법

예벤 루 덴코 달 모니

나는 akka에서 더 초심하고 교육하는 동안 다음 질문이 있습니다.

예를 들어 다른 두 명의 아역에게 메시지를 보내는 주연이 있습니다. 둘 다 다른 목록을 반환합니다.

    ChildActorA return Optional<List<Entity1>>
    ChildActorB return Optional<List<Entity2>>

이 답변을 처리하기 위해 주연을 어떻게 매치시킬 수 있습니까?

일부 데모 코드 :

    public class MainActor extends AbstractLoggingActor {

        @Override
        public Receive createReceive() {
            return receiveBuilder()
                    .match(Entity1.class, this::onEntity1)
                    .match(Entity2.class, this::onEntity2)
                   //How match to the list of these entities?
                    .match(Optional<List<Entity1>>, this::onList1)
                    .match(Optional<List<Entity2>>, this::onList2)                  
                    .build();
        }
}


private void onEntity1(Entity1 entity1) {
        final ActorRef entity1ChildActor = getContext().actorOf(Entity1ChildActor.props());

        entity1ChildActor.tell("printIt", getSelf());
    }

    private void onEntity2(Entity2 entity2) {
        final ActorRef entity21ChildActor = getContext().actorOf(Entity2ChildActor.props());

        entity2ChildActor.tell("printIt", getSelf());
    }

어린이 배우 중 한 명 :

public class Entity1ChildActor extends AbstractLoggingActor {

    @Override
    public Receive createReceive() {
        return receiveBuilder()
                .match(String.class, this::onPrint)
                .build();
    }

    private void onPrint(Entity1 entity1) {
        System.out.println(entity1);

         //Here I want to tell to parent List of something
         //namely Optional<List<Entity1>>
         //How can I match parent behavior? 

         getSender().tell(someOptionalList, getSelf());
    }

    public static Props props(){
        return Props.create(Entity1ChildActor.class);
    }
}
Michal Borowiecki

일반 형식 인수는 컴파일 타임 문제입니다. 런타임에 손실됩니다. 유형 삭제 라고 합니다 . 그래서 런타임에 모두 Optional<List<Entity1>>Optional<List<Entity2>>간단하게 Optional입력하여 구별 할 수 없다.

그러나 2 개의 구체적인 클래스를 만들어 메시지로 사용하고 선택적 목록을 캡슐화하고 해당 목록과 일치시킬 수 있습니다. 또는 하나의 구체적인 클래스를 만들고 필드에 엔터티 유형을 유지하고 노출하도록하여 match 메서드의 조건 자에서 사용할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

액터 시스템을 올바르게 다시 시작하고 방금 떠난 akka 클러스터에 다시 참여하는 방법은 무엇입니까?

분류에서Dev

Python에서 여러 문자열을 정규식으로 일치시키고 바꾸는 방법

분류에서Dev

제네릭 매개 변수에 여러 데이터 유형이있을 때 rust에서 제네릭을 구현하는 방법은 무엇입니까?

분류에서Dev

한 열의 여러 문자열을 다른 열의 여러 문자열과 일치시키는 방법은 R에서 일치를 제거합니까?

분류에서Dev

여러 액터를 목록에 넣고 이동시키는 방법-python pygame

분류에서Dev

메이크 파일의 여러 리터럴에 대해 문자열을 일치시키는 방법은 무엇입니까?

분류에서Dev

자바에서 정규식을 사용하여 단어를 일치시키는 방법

분류에서Dev

여러 정규식에 대해 문자열을 일치시키는 방법은 무엇입니까?

분류에서Dev

제네릭 <? 슈퍼> 와일드 방법 참조 또는 람다 자바 1.8에서 작동하지

분류에서Dev

CPython을 사용하여 Python.NET에서 제네릭을 작동하는 방법

분류에서Dev

JOIN 쿼리에서 여러 조건을 일치시키는 방법

분류에서Dev

R의 열간에 여러 해당 값을 일치시키는 방법

분류에서Dev

C #에서 정규식을 사용하여 공백 또는 문자가있는 여러 패턴을 일치시키는 방법

분류에서Dev

Akka로 최상위 액터에 대한 심판을 관리하는 방법

분류에서Dev

여러 데이터 프레임의 문자열을 일치시키고 AND 및 OR 옵션을 사용하여 인덱스를 반환하는 방법

분류에서Dev

동일한 축에서 자동으로 여러 컬러 바를 나란히 배치하는 방법

분류에서Dev

if 문을 사용하여 문자열을 사용자 입력에 일치시키는 방법은 무엇입니까? (자바)

분류에서Dev

트위터 사용자 이름을 앵귤러 UI 라우터와 일치시키는 방법

분류에서Dev

제네릭이 아닌 자식을 통해 부모 클래스에서 제네릭 메서드에 올바르게 액세스하는 방법은 무엇입니까?

분류에서Dev

동일한 서사시에서 여러 액션을 전달하는 방법

분류에서Dev

제네릭을 사용하여 자식 인터페이스에서 인터페이스 메서드를 재정의하는 올바른 방법은 무엇입니까?

분류에서Dev

Java 인터페이스에서 제네릭의 제네릭을 사용하는 방법

분류에서Dev

필터에 자바 제네릭 방법 및 목록의 첫 번째 요소를 찾을 수

분류에서Dev

rxcpp 사용자 정의 연산자에서 제네릭을 올바르게 추론하는 방법

분류에서Dev

자바 스크립트에서 여러 키보드 입력을 얻는 방법

분류에서Dev

akka 클러스터를 사용하여 고유 한 작업을 수행하는 관용적 방법

분류에서Dev

jquery에서 문자열을 일치시키는 방법

분류에서Dev

여러 제목에서 하나의 문자열을 바꾸는 방법

분류에서Dev

문자열에서 여러 줄 바꿈을 제거하는 방법

Related 관련 기사

  1. 1

    액터 시스템을 올바르게 다시 시작하고 방금 떠난 akka 클러스터에 다시 참여하는 방법은 무엇입니까?

  2. 2

    Python에서 여러 문자열을 정규식으로 일치시키고 바꾸는 방법

  3. 3

    제네릭 매개 변수에 여러 데이터 유형이있을 때 rust에서 제네릭을 구현하는 방법은 무엇입니까?

  4. 4

    한 열의 여러 문자열을 다른 열의 여러 문자열과 일치시키는 방법은 R에서 일치를 제거합니까?

  5. 5

    여러 액터를 목록에 넣고 이동시키는 방법-python pygame

  6. 6

    메이크 파일의 여러 리터럴에 대해 문자열을 일치시키는 방법은 무엇입니까?

  7. 7

    자바에서 정규식을 사용하여 단어를 일치시키는 방법

  8. 8

    여러 정규식에 대해 문자열을 일치시키는 방법은 무엇입니까?

  9. 9

    제네릭 <? 슈퍼> 와일드 방법 참조 또는 람다 자바 1.8에서 작동하지

  10. 10

    CPython을 사용하여 Python.NET에서 제네릭을 작동하는 방법

  11. 11

    JOIN 쿼리에서 여러 조건을 일치시키는 방법

  12. 12

    R의 열간에 여러 해당 값을 일치시키는 방법

  13. 13

    C #에서 정규식을 사용하여 공백 또는 문자가있는 여러 패턴을 일치시키는 방법

  14. 14

    Akka로 최상위 액터에 대한 심판을 관리하는 방법

  15. 15

    여러 데이터 프레임의 문자열을 일치시키고 AND 및 OR 옵션을 사용하여 인덱스를 반환하는 방법

  16. 16

    동일한 축에서 자동으로 여러 컬러 바를 나란히 배치하는 방법

  17. 17

    if 문을 사용하여 문자열을 사용자 입력에 일치시키는 방법은 무엇입니까? (자바)

  18. 18

    트위터 사용자 이름을 앵귤러 UI 라우터와 일치시키는 방법

  19. 19

    제네릭이 아닌 자식을 통해 부모 클래스에서 제네릭 메서드에 올바르게 액세스하는 방법은 무엇입니까?

  20. 20

    동일한 서사시에서 여러 액션을 전달하는 방법

  21. 21

    제네릭을 사용하여 자식 인터페이스에서 인터페이스 메서드를 재정의하는 올바른 방법은 무엇입니까?

  22. 22

    Java 인터페이스에서 제네릭의 제네릭을 사용하는 방법

  23. 23

    필터에 자바 제네릭 방법 및 목록의 첫 번째 요소를 찾을 수

  24. 24

    rxcpp 사용자 정의 연산자에서 제네릭을 올바르게 추론하는 방법

  25. 25

    자바 스크립트에서 여러 키보드 입력을 얻는 방법

  26. 26

    akka 클러스터를 사용하여 고유 한 작업을 수행하는 관용적 방법

  27. 27

    jquery에서 문자열을 일치시키는 방법

  28. 28

    여러 제목에서 하나의 문자열을 바꾸는 방법

  29. 29

    문자열에서 여러 줄 바꿈을 제거하는 방법

뜨겁다태그

보관