كيفية إنشاء مثيل لواجهة مجهولة في Kotlin؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin بعد Java وواجهت مشكلة. في Java، كنت أستخدم الفئات المجهولة للواجهات بشكل متكرر، على سبيل المثال، لمعالجات النقر أو المستمعين. إليك كيف كنت أفعل ذلك في Java:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Clicked!");
}
});
الآن أحاول فعل الشيء نفسه في Kotlin، لكنني لا أستطيع. لدي واجهة بسيطة:
interface ClickListener {
fun onClick()
}
أريد إنشاء مثيل لهذه الواجهة مباشرة في الكود، دون إنشاء فئة منفصلة. في Java كان الأمر سهلاً: `new ClickListener() { ... }`. لكن في Kotlin، أحاول خيارات مختلفة، ولا يعمل أي منها:
// الخيار 1 - لا يتم التجميع
val listener = ClickListener() {
println("Clicked!")
}
// الخيار 2 - خطأ أيضاً
val listener = object : ClickListener {
println("Clicked!")
}