Witam
Zacząłem się uczyć Kotlina i jestem obecnie na wyrażeniach lambda. Jest sobie taka data class:
data class Employee constructor(val name: String, val salary: BigDecimal) {
override fun toString(): String {
return "Employee(name : $name, salary: $salary)"
}
}
Teraz w pliku gdzie mam maina robie tak:
fun aboveLimit(employee: Employee) = employee.salary > BigDecimal(10000)
fun main(args : Array<String>) {
val employees = listOf(Employee("Aleksander", BigDecimal(1000)),
Employee("Jan", BigDecimal(12000)))
employees.filter { ::aboveLimit}
}
I teraz mam takie pytanie - czemu wyskakuje mi wyskakuje :
"Type mismatch. Required (Employee) -> Boolean, Found : (Employee) -> KFunction1<@ParameterName Employee, Boolean>
Z tego co zrozumiałem z "Kotlin In Action" to chyba powinienem móc odwołać się do tej funkcji jako zadeklarowanej wyżej. Nie moge sie także do settera odwołać Jak pisze:
val max = employees.maxBy { Employee::salary }
@jarekr000000 pomóż :D