কোটলিনে অ্যাবস্ট্রাক্ট বর্গের বেনাম শ্রেণীর উদাহরণ কীভাবে তৈরি করবেন?


114

ধরে নিন যে KeyAdapterএটি একটি বিমূর্ত শ্রেণি রয়েছে যাতে বিভিন্ন পদ্ধতিতে ওভাররাইড করা যায়।

জাভাতে আমি করতে পারি:

KeyListener keyListener = new KeyAdapter() {
    @Override public void keyPressed(KeyEvent keyEvent) {
        // ...
    }
};

কীভাবে কোটলিনে এটি করবেন?


1
আমি উঁচু হই নি, তবে আপনার প্রশ্নটি খুব কম গবেষণা প্রচেষ্টা দেখায়। করার এক সহজ গুগল সার্চ kotlin বেনামী শ্রেণীর আপ পালাক্রমে এই পৃষ্ঠার একটি বেনামী ভেতরের ক্লাসে Kotlin অ্যানালগ তৈরি করার পদ্ধতি - সব কিছুর - যা আলোচনা করা হয়েছে।
টেড হপ

5
আমিও কোটলিন দিয়ে শুরু করছি। এই প্রশ্নটি খুব যুক্তিসঙ্গত গুগল অনুসন্ধানের সাথে প্রথম হিট হিসাবে আসে। আমার জন্য যে বিষয়টি খুব বিভ্রান্তিকর ছিল তা হ'ল যে প্রশ্নে কীএডাপ্টারটি সম্ভবত সম্ভবত java.awt.event.KeyAdapter, যা 3 পদ্ধতি এবং সরল val k: KeyAdapter = KeyAdapter { println("Hello, world!") }অভ্যাসের কাজ সহ একটি বিমূর্ত শ্রেণি । (তবে আমি ল্যাম্বডা সিনট্যাক্সটি সন্ধান করছিলাম I) আমি মনে করি আমি এই সঠিক শিরোনামের সাথে অ্যানোটারের প্রশ্নটি খুঁজব, তবে একটি আরও ভাল সূচিত প্রশ্ন এবং এটিকে একটি মন্তব্যের সাথে যুক্ত করব ...
পিটার ল্যামবার্গ

@ পিটারল্যামবার্গ এটি জাভা নয়, এটি ইন্টেলিজ প্লাগইন এপিআই।
Tvaroh

এই প্রশ্নটি কয়েকটি গুগল অনুসন্ধানে প্রথম হিট হিসাবে উঠে এসেছে যার জন্য প্রাসঙ্গিক প্রশ্নটি এর নিকটবর্তী তাই আমি এটি এখানে যুক্ত করছি
পিটার ল্যামবার্গ

12
এটিকে কেন খুব সাধারণ হিসাবে চিহ্নিত করা হচ্ছে তা আমি দেখতে পাচ্ছি না। প্রশ্নটি প্রচুর পরিমাণে উত্থিত হয়েছে, যার অর্থ প্রচুর লোকেরা এই সমস্যার মুখোমুখি হন। ভাষার পার্থক্যের কারণে, এটি গুগলে প্রথম হিট সমাধান কিনা তা সুস্পষ্ট নয়। আমি অফিসিয়াল ডকুমেন্টেশনের উপর ঝাঁকুনি দিয়েছি তবে এসও সম্পর্কিত এই প্রশ্নটি এটিকে পরিষ্কার করে দিয়েছে।
মুজ

উত্তর:


178

থেকে সরকারী Kotlin ভাষা ডকুমেন্টেশন :

window.addMouseListener(object : MouseAdapter() { 
    override fun mouseClicked(e : MouseEvent) { 
    // ... 
}

আপনার সমস্যাটি হাতের কাছে প্রয়োগ করা হয়েছে:

val keyListener = object : KeyAdapter() { 
    override fun keyPressed(keyEvent : KeyEvent) { 
    // ... 
} 

পিটার ল্যামবার্গ যেমন উল্লেখ করেছেন - বেনাম শ্রেণিটি যদি আসলে কার্যকরী ইন্টারফেসের ( যেমন কোনও বিমূর্ত শ্রেণীর নয় ) একটি বাস্তবায়ন হয় , তবে এসএএম রূপান্তরগুলি আরও এই বিবৃতিটি আরও সহজ করতে ব্যবহার করতে পারে:

val keyListener = KeyAdapter { keyEvent ->
    // ...
}

দয়া করে জাভা এবং কোটলিনে সংজ্ঞায়িত ইন্টারফেসের বিভিন্ন ব্যবহার সম্পর্কে এই আলোচনাটি নোট করুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.