פורסם 2008 באוקטובר 117 שנים שלום רב !!בניתי תוכנית , ביצעתי קומפילציה (ללא שגיאות) וכאשר רציתי להריץ את התוכנית הופיע לי השגיאה הבאה בחלון פלט המסך:Exception in thread "main" java.lang.NullPointerException at World.clearNeighborCounts(World.java:56) at Living.computeNeighbors(Living.java:36) at Empty.next(Empty.java:19) at World.update(World.java:36) at RunPredatorPrey.main(RunPredatorPrey.java:11)מה השגיאה ?כיצד פותרים ומתקנים אותה ?
פורסם 2008 באוקטובר 117 שנים אתה ניגש למשתנה שלא שמת בו אובייקט.אתה צריך להשתמש ב- new ע"מ ליצור את האובייקט, ולגשת אליו.
פורסם 2008 באוקטובר 117 שנים מחבר אתה ניגש למשתנה שלא שמת בו אובייקט.אתה צריך להשתמש ב- new ע"מ ליצור את האובייקט, ולגשת אליו.אני ניגש לאובייקט שקיים כבר אבל בכל זאת הוא מודיע לי על זה...הינה אחד הקודים אשר הוא מראה עליהם את השגיאה : public void clearNeighborCounts() { int size=this.size; for(int row=0;row<size;row++) for(int col=0;col<size;col++) { this.getCell(row,col).getCount().setCounter(0); this.getCell(row,col).getCount().setCounter(0); this.getCell(row,col).getCount().setCounter(0); this.getCell(row,col).getCount().setCounter(0); } }
פורסם 2008 באוקטובר 117 שנים תוודא שאין לך באמת nullים בקוד.תוודא שהקריאות ל-getCell לא מחזירות לך null, ושהקריאות ל-getCount לא מחזירות לך null.שים לב שהוא גם אומר לך את השורה (56).
פורסם 2008 באוקטובר 117 שנים הוא רושם לך בדיוק את השורה שיש בה את הבעיה, תסתכל שבכל הריצות האלו המשתנים בשורה הזו מאותחלים, ואם אתה עדיין מסתבך, פשוט תריץ בדיבאגר ותשים נקודת עצירה לפני השורה הזו.
פורסם 2008 באוקטובר 217 שנים מחבר הופיע לי גם בעיה נוספת :Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at World.eden(World.java:15) at RunPredatorPrey.main(RunPredatorPrey.java:7)מה הכוונה במספר 8 שהוא מראה ?מה הבעיה ?איך פותרים אותה ?
פורסם 2008 באוקטובר 217 שנים מחבר אני מתקן שגיאה ונוצרת לי שגיאה אחרת חדשה...שגיאה נוספת :Exception in thread "main" java.lang.NullPointerException at World.update(World.java:23) at RunPredatorPrey.main(RunPredatorPrey.java:16)הקוד : public void update(World world) { int size=this.size; for(int i=1;i<=size;i++) for(int j=1;j<=size;j++) if(this.getCell(i,j).next(this)!= null) world.setCell(this.getCell(i,j).next(this),i,j); else { System.out.println("There Is No Cell.."); } }השורה עליה מצביעה השגיאה : if(this.getCell(i,j).next(this)!= null)מה הבעיה וכיצד מתקנים ופותרים אותה ?
פורסם 2008 באוקטובר 217 שנים מחבר בדקת אם getCell מחזיר null?כן , הוא מצביע על שורת הבדיקה בה יש בעיה...
פורסם 2008 באוקטובר 217 שנים מחבר בדקתי..אין סיבה שהיא תחזיר NULL משום שכל התאים במערך מאותחלים ויש בהם עצמים..........
פורסם 2008 באוקטובר 217 שנים הפונקציה getCell היא פונקציה שכתבת בעצמך?אם כן, אז תדבג אותה ותראה איפה היא מחזירה null.אם לא, אז תמצא את התיעוד שלה ותראה מתי היא מחזירה null.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.