ฉันกำลังแปลงรหัส Java ของฉันเป็น Kotlin และฉันไม่ค่อยเข้าใจวิธีอินสแตนซ์อินเทอร์เฟซที่กำหนดไว้ในโค้ด Kotlin ตัวอย่างเช่นฉันมีอินเทอร์เฟซ (กำหนดในโค้ด Java):
public interface MyInterface {
void onLocationMeasured(Location location);
}
จากนั้นต่อไปในรหัส Kotlin ของฉันฉันสร้างอินเทอร์เฟซนี้:
val myObj = new MyInterface { Log.d("...", "...") }
และใช้งานได้ดี อย่างไรก็ตามเมื่อฉันแปลง MyInterface เป็น Kotlin:
interface MyInterface {
fun onLocationMeasured(location: Location)
}
ฉันได้รับข้อความแสดงข้อผิดพลาด: Interface MyListener does not have constructors
เมื่อฉันพยายามสร้างอินสแตนซ์ - แม้ว่าฉันจะดูเหมือนว่าไม่มีอะไรเปลี่ยนแปลงนอกจากไวยากรณ์ ฉันเข้าใจผิดว่าอินเทอร์เฟซทำงานอย่างไรใน Kotlin หรือไม่
Location -> Unit
) แทนอินเตอร์เฟสวิธีเดียวถ้าเป็นไปได้ - ถูกต้องหรือไม่?