所以這是我的Java代碼,工程錯誤轉換Java來科特林代碼時
if (currentForecastJava.getCurrentObservation().getTempF() >= 60) {
mCurrentWeatherBox.setBackgroundColor(getResources().getColor(R.color.weather_warm));
mToolbar.setBackgroundColor(getResources().getColor(R.color.weather_warm));
} else {
mCurrentWeatherBox.setBackgroundColor(getResources().getColor(R.color.weather_cool));
mToolbar.setBackgroundColor(getResources().getColor(R.color.weather_cool));
}
我所試圖做的是在科特林寫(知道的有轉換器,但不會改變任何東西)
if (currentObservationKotlin.tempF.compareTo() >=)
currentWeatherBox.setBackgroundColor(resources.getColor(R.color.weather_warm))
toolbar.setBackgroundColor(resources.getColor(R.color.weather_warm))
else currentWeatherBox.setBackgroundColor(resources.getColor(R.color.weather_cool))
toolbar.setBackgroundColor(resources.getColor(R.color.weather_cool))
我知道我需要在compareTo()和after後面的值,但我不確定要放置什麼,因爲我想將TempF與60進行比較,因爲我希望顏色根據數據類中的TempF值進行更改。我沒有另一個對象來比較它。
我可以用Java寫,並將其與科特林其餘代碼工作,但想看看是否科特林可以在Java的if/else相似,更快地寫。
爲什麼不只是'currentObservationKotlin.tempF> = 60'? – hotkey
我可以使用currentObservationKotlin.tempF! > = 60,一切都按預期進行編譯和工作,但不知道爲什麼我需要放!!仍然試圖用Kotlin學習無用的東西。 –
當我按照上面的建議進行操作時,出現> =操作符的錯誤。我聲明:「以下函數都不能用所提供的參數調用:public final operator fun compareTo(other:Double):int在kotlin中定義。」double「。我可以使用currentObservationKotlin.tempF! > = 60,一切都按預期進行編譯和工作,但不知道爲什麼我需要放!!仍然試圖用Kotlin學習無用的東西。 –