+1 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)

بلاک های استاتیک در جاوا که بصورت زیر نوشته می شوند چه کاربردی دارند:

static {
    //code
}

1 پاسخ

+3 امتیاز
قبل توسط (1.4هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

بلاک استاتیک، تنها یک بار در موقع load شدن کلاس (با اولین access به کلاس، کلاس load می‌شود) فراخوانی می‌شود. در درون این بلاک، معمولا initialization های پیچیده‌تر (که در یک خط نمی‌تواند انجام شود) انجام می‌شود. مثال:

public class DateUtils
{
	private static Map<String,String> months = new HashMap<String,String>();
	static
	{
		months.put("01","farvardin"); 
		months.put("02","ordibehesht"); 
		// ...
	}
}

هرچند کار بالا رو می‌توان با یک تابع private و استاتیک نیز انجام داد:

public class DateUtils
{
	private static Map<String,String> months = initializeMonths();
	
	private static  Map<String,String> initializeMonths()
	{
		Map<String,String> months = new HashMap<String,String>();
		months.put("01","farvardin"); 
		months.put("02","ordibehesht"); 
		// ...
		return months;
	}
}

سوالات مشابه

+1 امتیاز
1 پاسخ 516 بازدید
+1 امتیاز
1 پاسخ 503 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
1 پاسخ 1.0هزار بازدید
+2 امتیاز
1 پاسخ 920 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 783 بازدید
+1 امتیاز
1 پاسخ 340 بازدید
...