💎بررسی مقدار و کلیدواژه null در جاوا
🔆 یکی از کلمات رزرو شده در جاوا کلمه null میباشد. مقدار null فقط مختص داده های مرجع میباشد. زمانی که یک شی از یک داده مرجع (Reference type) مقدار دهی نشده باشد (به هیچ خانه ای از حافظه اشاره نکند) بصورت پیشفرض مقدار اولیه آن برابر null خواهد بود.
🔰برای مثال:
🔅ویژگی های نال:
⭕️ کلیدواژه null حتما باید با حروف کوچک نوشته شود زیرا در غیر این صورت کمپایلر در شناسایی آن به مشکل خواهد خورد.
⭕️ همانطور که پیش تر نیز اشاره کردیم، مقدار null مختص داده های مرجع میباشد و در صورت اختصاص به داده های نوع پیشین (primitive data types) خطای کمپایلر را به همراه خواهد داشت:
⭕️ از آنجا که نال یک مقدار خاص میباشد، میتواند به انواع داده های مرجع نیز تبدیل شود:
⭕️ یکی از اپراتور های جاوا instanceof میباشد که بررسی میکند آیا یک ابجکت نمونه ای از یک کلاس هست یا خیر. برای مثال:
@pieceJava
🔆 یکی از کلمات رزرو شده در جاوا کلمه null میباشد. مقدار null فقط مختص داده های مرجع میباشد. زمانی که یک شی از یک داده مرجع (Reference type) مقدار دهی نشده باشد (به هیچ خانه ای از حافظه اشاره نکند) بصورت پیشفرض مقدار اولیه آن برابر null خواهد بود.
🔰برای مثال:
public class ITHOOLOO {
private static Object object;
public static void main(String[] args) {
System.out.println(object);
}
}
خروجی نال را خواهد داشت. زیرا شی مقدار دهی نشده است. 🔅ویژگی های نال:
⭕️ کلیدواژه null حتما باید با حروف کوچک نوشته شود زیرا در غیر این صورت کمپایلر در شناسایی آن به مشکل خواهد خورد.
⭕️ همانطور که پیش تر نیز اشاره کردیم، مقدار null مختص داده های مرجع میباشد و در صورت اختصاص به داده های نوع پیشین (primitive data types) خطای کمپایلر را به همراه خواهد داشت:
int a = null; //error⭕️مقدار پیشفرض هر داده مرجع (رفرنس، reference) پیش از مقدار دهی نال میباشد.
⭕️ از آنجا که نال یک مقدار خاص میباشد، میتواند به انواع داده های مرجع نیز تبدیل شود:
// Typecasting null to String type⭕️تلاش برای دسترسی به یک آبجکت نال استثنای NullPointerException را به همراه خواهد داشت. برای مثال پیمایش آرایه ای از ابجکت ها (اشیا) که شامل یک یا چند ابجکت نال باشد. در حین پیمایش، زمانی که حلقه به آبجکت نال برخورد کرد، اسثتنای NullPointerException رخ میدهد
String myStr = (String) null;
// Typecasting to an Integer class
Integer myItr = (Integer) null;
// Typecasting to a Double class
Double myDbl = (Double) null;
⭕️ یکی از اپراتور های جاوا instanceof میباشد که بررسی میکند آیا یک ابجکت نمونه ای از یک کلاس هست یا خیر. برای مثال:
public class ITHOOLOO {
public static void main(String[] args) {
Object a = new Object();
System.out.println(a instanceof Object);
}
}
مقدار ترو را برمیگرداند زیرا a یک شی (ابجکت) از کلاس Object میباشد. حال اگر مقدار یک ابجکت null باشد، در بررسی با اپراتور instanceof مقدار فالس بازگشت میدهد. این نشان میدهد که null به معنای هیچ است. یعنی هیچ خانه ای در حافظه به ابجکت ساخته شده اختصاص داده نشده است:public class ITHOOLOO {
public static void main(String[] args) {
Integer b = null;
System.out.println(b instanceof Integer);//return false
}
}
#null #nullpointerException #instanceof@pieceJava
👍4
💎 استثنای NullPointerException و چگونگی رفع خطا
#یکبار_برای_همیشه
🟨 استثنای NullPointerException یک نوع استثنای در زمان اجراست (RuntimeException). این استثنا زمانی رخ میدهد که بخواهیم از ابجکت (شی، نمونه) ای استفاده کنیم که مقداری برابر null دارد.
🔗 در مورد کلیدواژه null از اینجا بخوانید
🔅در موارد زیر استثنای NullPointerException رخ میدهد:
💬 (برای خوانایی بهتر گوشی رو در حالت افقی قرار بدین و یا از تلگرام دسکتاپ استفاده کنین)
1️⃣ فراخوانی متد از یک ابجکت نال:
💬این مورد خیلی مهمه. فرض کنین یه ارایه با ظرفیت ذخیره 100 دانشجو داره. اونوقت اگه قسمتی از ارایه همچنان پر نشده باشه و به هر دلیلی بخواین ارایه رو پیمایش کنین، باید حواستون به خطای NullPointerException باشه :)
شناسایی NullPointer... بسیار ساده است. به خروجی ایجاد شده بواسطه خطا نگاه کنید و خواهید دید که خطای NullPointerException ایجاد شده دقیقا از چه کلاسی و از چه خطی رخ داده است. بعد از پیدا کردن محل خطا، بررسی کنید که کدام یک از موارد ذکر شده باعث رخ دادن این استثنا شده است.
⁉️ چطور این استثنا رو رفع کنیم؟
در هر کجا که با ابجکت ها سر و کار دارید، سعی کنید شرایط null بودن ابجکت رو هم بررسی کنید و یا در بدنه متد، ورودی ها را کنترل کنید.
🔰 برای مثال:
#null #nullpointerexception #exception #uncheckedexception
☕️@pieceJava
#یکبار_برای_همیشه
🟨 استثنای NullPointerException یک نوع استثنای در زمان اجراست (RuntimeException). این استثنا زمانی رخ میدهد که بخواهیم از ابجکت (شی، نمونه) ای استفاده کنیم که مقداری برابر null دارد.
🔗 در مورد کلیدواژه null از اینجا بخوانید
🔅در موارد زیر استثنای NullPointerException رخ میدهد:
💬 (برای خوانایی بهتر گوشی رو در حالت افقی قرار بدین و یا از تلگرام دسکتاپ استفاده کنین)
1️⃣ فراخوانی متد از یک ابجکت نال:
public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
2️⃣ دسترسی یا تغییر مقدار یک فیلد در یک ابجکت نال:public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
Test instance = null;
instance.xField = 5;
}
}
class Test{
int xField;
}
3️⃣ تلاش برای دسترسی به یک خانه نال در آرایه:💬این مورد خیلی مهمه. فرض کنین یه ارایه با ظرفیت ذخیره 100 دانشجو داره. اونوقت اگه قسمتی از ارایه همچنان پر نشده باشه و به هر دلیلی بخواین ارایه رو پیمایش کنین، باید حواستون به خطای NullPointerException باشه :)
public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
Object[] x = null;
System.out.println(x[0]);
}
}
4️⃣ بررسی طول یک آرایه در زمان اجرا درصورتی که مقدار نال داشته باشد:public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
Object[] x = null;
System.out.println(x.length);
}
}
5️⃣ زمانی که null پرتاب (thrown) شود.public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
throw null;
}
}
6️⃣ ارسال مقدار نال به یک متد:public class ITHOOLOO {
//@pieceJava
public static void main(String[] args) {
println(null);
}
private static void println(String s){
System.out.println(s.toLowerCase());
}
}
⁉️ چطور این استثنا رو شناسایی کنیم؟شناسایی NullPointer... بسیار ساده است. به خروجی ایجاد شده بواسطه خطا نگاه کنید و خواهید دید که خطای NullPointerException ایجاد شده دقیقا از چه کلاسی و از چه خطی رخ داده است. بعد از پیدا کردن محل خطا، بررسی کنید که کدام یک از موارد ذکر شده باعث رخ دادن این استثنا شده است.
⁉️ چطور این استثنا رو رفع کنیم؟
در هر کجا که با ابجکت ها سر و کار دارید، سعی کنید شرایط null بودن ابجکت رو هم بررسی کنید و یا در بدنه متد، ورودی ها را کنترل کنید.
🔰 برای مثال:
private static void println(String s){
if(s!=null)
System.out.println(s.toLowerCase());
}
🔰 مثال 2:if(user!=null && user.getUserName() !=null) {
System.out.println("User Name: "+user.getUserName().toLowerCase());
}
if(user!=null && user.getUserName() !=null) {
System.out.println("User ID: "+user.getUserId().toLowerCase());
}
———#null #nullpointerexception #exception #uncheckedexception
☕️@pieceJava
Telegram
تیکه پاره های جاوا
💎بررسی مقدار و کلیدواژه null در جاوا
🔆 یکی از کلمات رزرو شده در جاوا کلمه null میباشد. مقدار null فقط مختص داده های مرجع میباشد. زمانی که یک شی از یک داده مرجع (Reference type) مقدار دهی نشده باشد (به هیچ خانه ای از حافظه اشاره نکند) بصورت پیشفرض مقدار…
🔆 یکی از کلمات رزرو شده در جاوا کلمه null میباشد. مقدار null فقط مختص داده های مرجع میباشد. زمانی که یک شی از یک داده مرجع (Reference type) مقدار دهی نشده باشد (به هیچ خانه ای از حافظه اشاره نکند) بصورت پیشفرض مقدار…
👍8