פורסם 2007 באפריל 1318 שנים האם הדרך הכי נורמלית להחזיר מספר ערכים מפונקציה ב Java היא לבנות מחלקה מיוחדת שמאגדת אותם ?האם ב Java 5/6 יש משהו שדומה ל ref ו/או out ב C# ?
פורסם 2007 באפריל 1418 שנים לפני שאתה ממהר לקודד קלאס משלך כדי שיכיל אוסף של מספריםתבדוק איזה קלאסים של אוספים (Collections) קיימים בספריות של javaאני לא יודע java אבל אני בטוח שכמו ב- .net חייבים להיות קלאסים של collectionsאשר יכולים להכיל אוסף של אובייקטים והפונקציה שלך צריכה להחזיר אוסף אחד כזה
פורסם 2007 באפריל 1418 שנים מחבר כן, אבל אני יכול באותה מידה להחזיר מערך של אובייקטים, נראה לי כבר יותר מהר ולא פחות מסריח...טוב, כנראה שאין משהו יותר נורמלי.
פורסם 2007 באפריל 1418 שנים אוספים טובים כאשר אינך יודע מראש מספר האיברים שאתה צריך להחזיר אם זה לא המקרה , אז גם מערכים טוב
פורסם 2007 באפריל 1418 שנים מחבר כן, האנלוגיה שחיפשתי היא משהו דומה ל out ב C# שם אפשר לכתובvoid func(out someclass a, out someclass b) {...}ואז a, b עוברים ברפרנס במקום בהעתקה ואפשר לשנות על מה הם מצביעים (ואז כמובן גם יודעים כמה משתנים יש וכו')
פורסם 2007 באפריל 1418 שנים קראתי שב- java אכן אין call by reference for primitive values , רק לאובייקטים
פורסם 2007 באפריל 1418 שנים השאלה היא האם יש רפרנסים לרפרנס של האובייקט. משום מה זכור לי שבהרצאה המרצה אמרה שניתן, אך אני לא מוצר את זה בהרצאות הכתובות שלה. אולי אני לא זוכר טוב. בכל מקרה, שלחתי אימייל למתרגל(נקווה שהוא יענה, מכיוון שהקורס היה בסמסטר שעבר, ויש עכשיו שביתה, למרות שהוא נורא נחמד).ד.א. החזרת יותר מערך החזרה אחד הוא מעשה דיי "מלוכלך". בדרך כלל מתודות אמורות לעשות דבר אחד, ולא 2 פעולות. תשים לב אם התכנון שלך נכון.
פורסם 2007 באפריל 1818 שנים בקצרה: אין דרך פשוטה, וגם לא תהייה.בכנס JavaOne שמתקיים כל שנה בסן פרנסיסקו היה דיון על הנושא בשנת 2005. מתברר, שמכיוון שיש עשרות מימושי Java, וזה הכח העיקרי שלה מעל .net, אז מפחדים לעשות שינויים ששוברים תאימות בצורה קשה. בעיקר לא שינויים שאין להם "שום ערך" במובן הרחב של פלטפורמת Java.עלו מספר הצעות:1. תמיכה ב-out parameters, כמו ב-C#. די נפסל על הסף, כי זה הכי מגעיל, וגם יוצר הכי הרבה בעיות תאימות.2. תמיכה ישירה ברוטינה שמחזירה tupple. (אני לא מצליח לכתוב את זה בגלל העברית). משהו כמו: a,b=xxx, אבל בתוך <>. גם זה יוצר בעיות תאימות קשות. גם נפסל.3. הכוון היחיד שהיה לו סיכוי זה מה שנקרא "syntactic sugar", כלומר, שהמתכנת יכתוב a,b=xxx, או משהו כזה, אך הקומפיילר לקמפל את זה ע"י הגדרה של class, ושימוש בו, בצורה שקופה. בשיטה זו לא צריך שינוי ב-JVM. כך למשל ממומשים מספר דברים ב-Java. (לדוגמא, חיבור מחרוזות מתמפה לקריאה ל-StringBuilder).הבעיה עם דרך זו היא שכאשר מתחילים לפרוט אותה לכל מני מקרי קצה, אז רואים בעיות רבות. למשל, איך זה מתנהג בירושה. איך זה מתנהג עם versioning, כלומר שהרוטינה הקוראת והנקראית לא מאותה גירסא. למשל, איך זה עובר דרך reflection. אין זה נראה ב-RMI. איך זה מתנהג ב-debugger. ועוד ועוד.שהוצגו אוסף הבעיות, מאוד מהר הגענו להסכמה פה אחד שלא כדאי. ולכן אין!דורון.
פורסם 2007 באפריל 1818 שנים מחבר כן, חבל שהם לא מרשים לעצמם יותר חופש פעולה כמו C# במעבר ל 2, גם מעצבן שלא הוסיפו ב java 6 אפשרות כמו emit ב C#....בכל מקרה, ראיתי דוגמא שמישהו מעביר את הפרמטר כמערך עם ערך אחד (ואז אפשר לשנות את מה שהתא במערך מצביע עליו).בסוף פשוט הגדרתי מחלקה חדשה שמעבירה את זה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.