所以这是我的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学习无用的东西。 –