עבור לתוכן

חידוד של JAVA COLECTIONS

Featured Replies

פורסם

אם אפשר איזה הבהרה של הנושא הזה..

ממה שנראה שהבנתי זה כמו לעשות CASTING לכל העצמים של טיפוס מסויים(נגיד של ARREYLIST) מראש.

אבל אם זה נכון אז איך בדיוק יש טיפוש שיכולים להיות מורכבים מכמה COLECTIONS?

פורסם

זה לא כמו לעשות CAST!

תחשוב שהמחשב מקצה מראש, כל פעם שאתה עושה נאמר ADD, מקום לאובייקט type E כמו שכתבת בGENERICS.

כלומר אתה לא עושה CAST, המחשב יודע שיש שם אובייקטים כאלה וזהו. תחשוב על GENERICS בתור מחלקות שאתה נותן להן משתנה (שהוא בעצם מחלקה בפני עצמו) בבנאי.

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

פורסם
  • מחבר

אז איך אני יכול להקצות מראש לכמה סוגים שונים של מחלקות.

פורסם

אז איך אני יכול להקצות מראש לכמה סוגים שונים של מחלקות.

כל העניין של GENERICS ב- COLLECTIONS נועד בכדי לוודא התאמה של משתנים בזמן קומפילציה ולא בזמן הרצה, כלומר שאם יש לך LIST שאתה יודע מראש שהיא הולכת להכיל רק אובייקטים מסוג מסויים (למשל STRING) אז אתה יכול מראש להגדיר List<String> וכך אם תנסה להכניס משהו לרשימה שהוא לא STRING, תקבל שגיאת קומפילציה ולא תצטרך לחכות להרצה בשביל לדעת שעשית משהו לא טוב.

אבל, וזה בתשובה לשאלתך, זה לא חובה, כלומר אם אתה צריך רשימה או מפה שמכילים אובייקטים מסוגים שונים, פשוט תגדיר List רגיל בלי להגדיר לו TYPE גנרי.

הקומפיילר ייתן לך אזהרה אבל לא ERROR.

ארכיון

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

דיונים חדשים