Closed dusskapark closed 8 years ago
@DoosikKim 아~주 간단합니다. OnClickListener 같은 걸 구현할 때 주로 사용되는 anonymous inner class를 lambda로 대체하려구요. 그래서 JDK5~7에서도 lambda를 지원하게 해주는 Retrolambda를 쓰고 있습니다.
new Builder<>(DailyMenu.class, () -> api.menuOfDate(date).execute(), "menuOfDate")
.setResultListener(listener)
.setCacheKey(date)
.execute();
RemoteApiLoader<DailyMenu> remote = new RemoteApiLoader<DailyMenu>() {
@Override
public DailyMenu fromRemoteApi() throws IOException {
return api.menuOfDate(date).execute();
}
};
new Builder<>(DailyMenu.class, remote, "menuOfDate")
.setResultListener(listener)
.setCacheKey(date)
.execute();
}
@DoosikKim 진짜 궁금하신 건 이게 아니었던 듯하네요. 클래스는 1.8 버전으로 만들어지는게 맞고, Retrolambda gradle plugin에 의해 다시 1.7버전 클래스로 재가공됩니다. (클래스 레벨에서 anonymous inner class로 코드 rewrite하는 것으로 압니다)
결과적으로 JDK7 기반의 안드로이드 디바이스에서 해당 프로그램을 돌리는데 아무런 문제가 없습니다.
@DoosikKim 의 질문을 전달합니다.