Tôi đang chuyển đổi một số mã Java của mình sang Kotlin và tôi hoàn toàn không hiểu làm thế nào để khởi tạo các giao diện được xác định trong mã Kotlin. Ví dụ, tôi có một giao diện (được xác định trong mã Java):
public interface MyInterface {
void onLocationMeasured(Location location);
}
Và sau đó trong mã Kotlin của tôi, tôi khởi tạo giao diện này:
val myObj = new MyInterface { Log.d("...", "...") }
và nó hoạt động tốt. Tuy nhiên, khi tôi chuyển đổi MyInterface thành Kotlin:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
Tôi nhận được một thông báo lỗi: Interface MyListener does not have constructors
khi tôi cố gắng khởi tạo nó - mặc dù với tôi dường như không có gì thay đổi ngoại trừ cú pháp. Tôi có hiểu nhầm cách các giao diện hoạt động trong Kotlin không?
Location -> Unit
) thay vì giao diện phương thức đơn nếu có thể - có đúng không?