פורסם 2013 במאי 112 שנים יש לי arrayList בשם airlines שמכיל אובייקטים מסוג Airline ונמצא בתוך קלאס sData.בתוך כל אובייקט Airline יש לי arrayList בשם registeredPlanes שמכיל אובייקטים מסוג Plane.במידה ואני רוצה לולאה שתבדוק האם בתא i במערך הAirline הregisteredPlanes שלו ריק או שיש בו מטוסים כלשהם,האם נכון לכתוב את זה כך:if(!sData.getAirlines().get(i).getRegisteredPlanes().isEmpty())השגיאה שאני מקבלת היא java.lang.NullPointerException.תודה!!
פורסם 2013 במאי 112 שנים שלום וברוכה הבא לפורום.מומלץ שתערכי את ההודעה ותשימי את הקוד בתוך טג קוד (כפתור עם ציור #) על מנת שיהיה יותר ברור.לשאלתך: הקוד נראה תקין. NullPointerException אומר שניסית להשתמש במשתנה\שדה שמכיל null, כלומר הוא לא מאותחל (לא שמת בו ערך כלשהו). אם זה עדיין לא ברור לך, אז תעלי לכאן את הקוד הרלוונטי ונוכל להסביר יותר טוב את הבעיה.
פורסם 2013 במאי 112 שנים מחבר מה שמשתי לב הוא שבכל מקום בו אני צריכה לבדוק האם arraylist מסוים שנמצא בתוך arraylist אחר ריק או שיש בו אובייקטים,אותה השגיאה מתקבלת.לפי מה שאתה אומר, בדוגמא שלי ניסיתי לפנות לgetRegisteredPlanes שאני יודעת בוודאות שהוא ריק, רק רציתי שהתוכנית תדע לבדוק את זה, והוא החזיר לי את השגיאה כי אני מנסה לפנות לgetRegisteredPlanes שאינו מאותחל.אבל בעצם בלי לפנות אליו באמצעות isEmpty איך אוכל לדעת אם הוא מאותחל או לא? :-\
פורסם 2013 במאי 112 שנים למה אתה לא מדביק את הקוד?אם יש לך אובייקט בתוך אובייקט, אתה צריך לבדוק קודם שהאובייקט החיצוני אינו ריק.
פורסם 2013 במאי 112 שנים בדוגמא שלי ניסיתי לפנות לgetRegisteredPlanes שאני יודעת בוודאות שהוא ריק,מה הכוונה ב"ריק"? אם לא אתחלת את השדה לשום ערך, אז הוא לא מכיל כלום - הוא null - ולכן כל פעולה שתנסי לבצע עליו תיכשל.את חייבת לאתחל את השדה באמצעות new.וכמו שאני וגיל אמרנו - תדביקי פה את הקוד.
פורסם 2013 במאי 112 שנים מחבר הבעיה היא בשורה[font=monospace]if[/font](sData.getAirlines().get(i).getRegisteredPlanes().isEmpty())
פורסם 2013 במאי 112 שנים זה לא הקוד הרלוונטי. הקוד הרלוונטי זה המחלקות שהגדרת - המחלקה של sData, המחלקה שמגדירה את המטוסים וכן הלאה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.