RxScala 응용 프로그램에서 카프카에서 메시지를 소비하고 동적 크기의 슬라이딩 윈도우에서 메시지를 처리하고 싶습니다. 즉, 생성 된 모든 메시지를 그룹으로 묶고 싶습니다. 같은 2 초 안에 RxScala는 내가 아는 한이 종류의 연산자를 제공하지 않습니다. 이 저장소 (https://github.com/davidmoten/rxjava-extras)는 "toListWhile"기능을 Java 코드 형태로 제공합니다.RxScala 응용 프로그램에서 Java 라이브러리 (rxjava-extras) 코드를 호출하십시오.
이 필요한 함수를 호출하는 단순화 된 시도는 실패
import com.github.davidmoten.rx.Transformers
import rx.functions.Func1
import rx.lang.scala.JavaConversions._
import rx.lang.scala.Observable
val o = Observable.from(List(1, 2, 3, 4, 5, 6))
val predicate = new Func1[java.lang.Integer, java.lang.Boolean] {
override def call(t: Integer): Boolean = true
}
val p = o.compose(Transformers.toListWhile(predicate))
입니다 나는 점점 오전 오류 :
Error:(75, 45) type mismatch;
found : rx.functions.Func1[Integer,Boolean]
required: rx.functions.Func1[_ >: _$7, Boolean] where type _$7 <: Int
Note: Integer <: Any, but Java-defined trait Func1 is invariant in type T.
You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10)
val p = o.compose(Transformers.toListWhile(predicate))
^
은 어떤 하나 스칼라에서 그 코드를 호출하여 제발 도와 주 시겠어요? 감사! 그들이 서로 전환 비록
용액
import java.lang.Boolean
import com.github.davidmoten.rx.Transformers
import rx.functions.Func1
import rx.lang.scala.JavaConversions._
import rx.lang.scala.Observable
val o = Observable.from(List[java.lang.Integer](1, 2, 3, 4, 5, 6))
val predicate = new Func1[java.lang.Integer, java.lang.Boolean] {
override def call(t: Integer): Boolean = true
}
val p = o.compose[java.util.List[java.lang.Integer]](Transformers.toListWhile(predicate))
첫 번째 조언은 도움이되었습니다. 목록에 자바 정수 유형을 추가했지만 작성 기능에 해당 유형을 전달해야했습니다. 나는 해결책으로 질문을 업데이트 할 것이다. 감사! – BenScape