Мой код:
RestClient client = new RestClient();
Disposable subscribe = client.getApiMovie().getTopRated()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe( data -> { Log.d("mytag", data.body().toString()) });
Это правильный код. PS: я использую Android Studio 2, как я могу настроить его для использования лямбда-выражения?
мой конструктор RestClient:
//what adapter shall I use?
public RestClient(){
if( client == null ) {
client = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(getHttpClient())
.build();
}
}
построить.градле:
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
applicationId "com.example.username.sunshine.app"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Синтаксис Lambda теперь должен работать, если добавить jackOptions и compileOptions.