Перенос комментариев к ответу для будущих посетителей вопроса
Вы определяете класс, поэтому getTargetDate
является методом, а не функцией и требует экземпляра класс для доступа.
Вам нужно либо создать экземпляр
new firstjar().getTargetDate()
, либо еще лучше использовать одноэлементный объект
object firstjar{
def getTargetDate() = {
...
}
}
Не связанный с вопросом, но мы не рекомендуется использовать var
, ;
, return
в Scala.
Мутация, как правило, грязная, поэтому старайтесь избегать ее как можно больше. И возврат не делает то, что вы думаете, он делает в Scala, вот сообщение в блоге об этом
Вы можете написать этот код как:
object FirstJar{ //Your object names should be more informative as well
def getTargetDate() : String = {
val format = new SimpleDateFormat("yyyy-MM-dd")
val calenderInstance = Calender.getInstance()
val f = format.format(calenderInstance.getTime())
calenderInstance.setTime(format.parse(f)) //This doesn't return anything so no need to allocate a value
calenderInstance.add(Calender.DAY_OF_MONTH, -612) //neither does this
val newDate = format.format(calenderInstance.getTime())
s"$newDate 00:00:00"
}
}
Вы можете назвать это как
FirstJar.getTargetDate
Ура