RxVertx를 Java8과 함께 RxJava와 함께 사용하고 있는데 컴파일 오류가 있습니다.Java8 - "매우 효과적"
public rx.Observable<Game> findGame(long templateId, GameModelType game_model, GameStateType state) {
return context.findGame(templateId, state)
.flatMap(new Func1<RxMessage<byte[]>, rx.Observable<Game>>() {
@Override
public Observable<Game> call(RxMessage<byte[]> gameRawReply) {
Game game = null;
switch(game_model) {
case SINGLE: {
ebs.subscribe(new Action1<RxMessage<byte[]>>() {
@Override
public void call(RxMessage<byte[]> t1) {
if(!singleGame.contains(0) {
game = new Game(); // ERROR is at this line
singleGames.put(0, game);
} else {
game = singleGames.get(0); // ERROR is at this line
}
}
});
}
}
return rx.Observable.from(game);
}
});
}
컴파일 오류는 다음과 같습니다 : 내가 마지막으로 '게임'을 정의 할 수 없습니다
"클로징 범위에 정의 된 지역 변수 게임은 최종 또는 효과적으로 최종해야"여기
내 코드입니다 왜냐하면 나는 할당 \ set을하고 함수의 끝에서 그것을 반환하기 때문이다.어떻게이 코드를 컴파일 할 수 있습니까 ??
감사합니다.
'public void call'이 바로 실행됩니까? 나는이 코드가 당신이 생각하는 바를 잘 모르겠다. – Sebas
[최종 로컬 변수를 할당 할 수 없다] 가능한 복제본 (http : // stackoverflow.com/questions/10166521/final-local-variable-can-assign-un-assigned) – user11153
Sebas : 당신 말이 맞아요, 저는 RxJava에 새로운 브랜드이고 이해하기 힘들었습니다. 하지만 주로 한 번에 하나의 문제를 해결하려고합니다 :-) – Shvalb