עבור לתוכן

עזרה קטנה למתחילים - java

Featured Replies

פורסם

יש לי arrayList בשם airlines שמכיל אובייקטים מסוג Airline ונמצא בתוך קלאס sData.

בתוך כל אובייקט Airline יש לי arrayList בשם registeredPlanes שמכיל אובייקטים מסוג Plane.

במידה ואני רוצה לולאה שתבדוק האם בתא i במערך הAirline הregisteredPlanes שלו ריק או שיש בו מטוסים כלשהם,

האם נכון לכתוב את זה כך:

if(!sData.getAirlines().get(i).getRegisteredPlanes().isEmpty())

השגיאה שאני מקבלת היא java.lang.NullPointerException.

תודה!!

פורסם

שלום וברוכה הבא לפורום.

מומלץ שתערכי את ההודעה ותשימי את הקוד בתוך טג קוד (כפתור עם ציור #) על מנת שיהיה יותר ברור.

לשאלתך: הקוד נראה תקין. NullPointerException אומר שניסית להשתמש במשתנה\שדה שמכיל null, כלומר הוא לא מאותחל (לא שמת בו ערך כלשהו). אם זה עדיין לא ברור לך, אז תעלי לכאן את הקוד הרלוונטי ונוכל להסביר יותר טוב את הבעיה.

פורסם
  • מחבר

מה שמשתי לב הוא שבכל מקום בו אני צריכה לבדוק האם arraylist מסוים שנמצא בתוך arraylist אחר ריק או שיש בו אובייקטים,

אותה השגיאה מתקבלת.

לפי מה שאתה אומר, בדוגמא שלי ניסיתי לפנות לgetRegisteredPlanes שאני יודעת בוודאות שהוא ריק, רק רציתי שהתוכנית תדע לבדוק את זה, והוא החזיר לי את השגיאה כי אני מנסה לפנות לgetRegisteredPlanes שאינו מאותחל.

אבל בעצם בלי לפנות אליו באמצעות isEmpty איך אוכל לדעת אם הוא מאותחל או לא? :-\

פורסם

למה אתה לא מדביק את הקוד?

אם יש לך אובייקט בתוך אובייקט, אתה צריך לבדוק קודם שהאובייקט החיצוני אינו ריק.

פורסם

בדוגמא שלי ניסיתי לפנות לgetRegisteredPlanes שאני יודעת בוודאות שהוא ריק,

מה הכוונה ב"ריק"? אם לא אתחלת את השדה לשום ערך, אז הוא לא מכיל כלום - הוא null - ולכן כל פעולה שתנסי לבצע עליו תיכשל.

את חייבת לאתחל את השדה באמצעות new.

וכמו שאני וגיל אמרנו - תדביקי פה את הקוד.

פורסם
  • מחבר

k

פורסם
  • מחבר

הבעיה היא בשורה


[font=monospace]if[/font](sData.getAirlines().get(i).getRegisteredPlanes().isEmpty())

פורסם

זה לא הקוד הרלוונטי. הקוד הרלוונטי זה המחלקות שהגדרת - המחלקה של sData, המחלקה שמגדירה את המטוסים וכן הלאה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים