চূড়ান্ত শ্রেণীর সমস্যা সমাধানের জন্য:
ক্লাস ফাইনাল করার দুটি উপায় রয়েছে। প্রথমটি শ্রেণীর ঘোষণায় কীওয়ার্ড ফাইনালটি ব্যবহার করা হয়:
public final class SomeClass {
// . . . Class contents
}
ক্লাস ফাইনাল করার দ্বিতীয় উপায় হ'ল এর সমস্ত নির্মাণকারীকে ব্যক্তিগত হিসাবে ঘোষণা করা:
public class SomeClass {
public final static SOME_INSTANCE = new SomeClass(5);
private SomeClass(final int value) {
}
এই পরীক্ষার ক্লাসটি দেখানোর জন্য এটি চূড়ান্তভাবে চূড়ান্ত কিনা তা সন্ধান করে যদি এটিকে চূড়ান্ত চিহ্নিত করা আপনার সমস্যাটিকে বাঁচায়। প্রথম নজরে পাবলিক দেখায়।
public class Test{
private Test(Class beanClass, Class stopClass, int flags)
throws Exception{
// . . . snip . . .
}
}
দুর্ভাগ্যক্রমে, যেহেতু ক্লাসের একমাত্র নির্মাণকারী ব্যক্তিগত, তাই এই শ্রেণিটি বাড়ানো অসম্ভব। টেস্ট ক্লাসের ক্ষেত্রে ক্লাসটি ফাইনাল হওয়ার কোনও কারণ নেই। অন্তর্ভুক্ত চূড়ান্ত ক্লাস কীভাবে সমস্যা সৃষ্টি করতে পারে তার একটি দুর্দান্ত উদাহরণ টেস্ট ক্লাস।
সুতরাং আপনি নির্ধারিতভাবে এটির নির্মাণকারীকে ব্যক্তিগত করে ক্লাস ফাইনাল তৈরি করার সময় আপনার এটি চূড়ান্ত হিসাবে চিহ্নিত করা উচিত।