פורסם 2006 בנובמבר 2019 שנים אני רוצה לבנות תוכנית שהאוביקטים בה לא מוגדרים מראשכלומר המשתמש יזין פרמטרים שיש לאוביקט ומה שהתוכנה שלי תעשה זה לפתוח CLASSלפי הפרמטרים האילואני אתן דוגמה נגיד שהמשתמש צריך אוביקט סטודנט אז מה שעושים זה לפתוח CLASS בשם הזהואז מגדירים משתנים(תז, שם...) ומתודות בתוכו שמתאימים לצרכיםבתוכנית שלי אני רוצה שהמשתמש יזין המשתנים והיא תדע לקחת אותם וליצור את ה CLASS אוטומטיכלומר הוא מתכנת מבלי לדעת לתכנת.אני מקווה שההיתי מספיק ברור.ברור לי שאני אצטרך לפתוח מערך שיכיל את מה שהמשתמש רוצה ואז לרוץ עליו ,עכשיו נגיד במקום הריאשוןכתוב ת.ז אז ב CLASS שיפתח יכתב במקום המתאים INT ID עד כאן החלק הלוגימה שאני לא יודע זה איך לקחת את מה שיש במערך ולשפוך אותו ל CLASS. אני יודע ש CLASS זה בעצם קובץרגיל שאפשר לפתוח ב NOTEPAD אז חשבתי אולי אפשר לבנות איזה מסגרת כללית ואז פשוטלעשות מנופולציות על הקובץ ולשנות אותו ככה שיתאים למה שמשתמש רוצה שיצא האם מה שאני רוצה לעשות אפשרי ? האם יש דרך אחרת פשוטה יותר לעשות את זה? האם הדרך שלי אפשרית?
פורסם 2006 בנובמבר 2019 שנים Java נותנת לך לעשות מה שאתה אומר, אבל ממש לא איך שאתה אומר.קובץ class הוא קובץ בינארי שנוצר ע"י ה- Java Compiler, (להבדיל מקובץ Java שמכיל את ה- source של אותו class)ב- Java אפשר ליצור classes חדשים בזמן ריצה, וגם להוסיף להם פונקציות, ליצור מהם instances ולהשתמש בהם כ- classes לכל דבר, אבל נראה לי שזה חומר טיפה מתקדם בשבילך.את מה שאתה מתאר אפשר לעשות באמצעות class סטטי רגיל, שמכיל map משם המשתנה לאובייקט שמכיל את הערך.
פורסם 2006 בנובמבר 2019 שנים מה שאתה מתאר נקרא Reflection תגגל את המושג יחד עם java ותמצא דוגמאותהמתודה Class.forName()מייצרת קלאס לא ידוע מראש מאיזה סוג , הסוג נקבע בזמן ריצה ע"י הפרמטר שנשלח למתודה
פורסם 2006 בנובמבר 2019 שנים אם אתה מסתבך, אתה תמיד יכול להגדיר מערך של מחרוזות שבהן ישמר כל המידע. אני לא מכיר כל כך JAVA, אך אם יש שם משהו כמו UNION שבC, זה יכול לעזור לך.
פורסם 2006 בנובמבר 2019 שנים מחבר קודם כל תודה על התגובותאני אבדוק את השימוש ב map, הבנתי שזה דבר חזק מאד ב java שמקל על התכנותלמרות שלא ניראה לי שזה יעזור לי בנקודה הספציפית שאני צריך זה בהחלט משהו שאני צריך ללמודושאלה נוספת האם שימוש ב Reflection יכול ליצר בזמן ריצה כל class מכל סוג אם איזה משתנים שאנירוצה ואיזה מתודות שאני רוצה ,כי אם כן אז זה באמת הפיתרון בשבילי ואני אבדוק אותו לעומקד.אאשמח לקבל קישורים טובים בנושא במידה ויש לכם כאלה שמורים במועדפיםאו שם של ספר טוב עם נושאים מתקדמים
פורסם 2006 בנובמבר 2019 שנים מה שאתה מתאר נקרא Reflection תגגל את המושג יחד עם java ותמצא דוגמאותהמתודה Class.forName()מייצרת קלאס לא ידוע מראש מאיזה סוג , הסוג נקבע בזמן ריצה ע"י הפרמטר שנשלח למתודהלא בדיוק. Class.forName מחזירה לך תיאור של class שכבר קיים.הדבר שאני התכוונתי אליו זה dynamic proxy שמאפשר לך לכאורה להרכיב class חדש בזמן ריצה, ולייצר לו פונקציות בזמן ריצה. כיוון שזה נושא קצת מורכב (ובמילא לא דובר כאן על פונקציות חדשות אלא רק על data חדש) נראה לי שהפיתרון העדיף הוא לעבוד עם map משמות המשתנים לערכים שלהם.
פורסם 2006 בנובמבר 2019 שנים קודם כל תודה על התגובותאני אבדוק את השימוש ב map, הבנתי שזה דבר חזק מאד ב java שמקל על התכנותלמרות שלא ניראה לי שזה יעזור לי בנקודה הספציפית שאני צריך זה בהחלט משהו שאני צריך ללמודושאלה נוספת האם שימוש ב Reflection יכול ליצר בזמן ריצה כל class מכל סוג אם איזה משתנים שאנירוצה ואיזה מתודות שאני רוצה ,כי אם כן אז זה באמת הפיתרון בשבילי ואני אבדוק אותו לעומקד.אאשמח לקבל קישורים טובים בנושא במידה ויש לכם כאלה שמורים במועדפיםאו שם של ספר טוב עם נושאים מתקדמים אני מכיר את הנושא ב- C#אני מניח שהפרנציפ יהיה זהה גם ב- javaהרעיון ב- reflection הוא שאתה יכול לכתוב תכנית מאוד ג'נרית שאתה לא יודע מראש מה התכנית הזאת תבצעמה שהתכנית הזאת יודעת לעשות זה לקבל פרמטרים כמו שם קלאס, מתודה בתוך הקלאס, פרמטרים אל המתודה ואז להפעיל את המתודההפרמטרים יכולים להיות מאוחסנים בקובץ חיצוני או DBיכול להיות שהקלאס שאתה הולך להפעיל אפילו לא מוכר לתכנית שלך בזמן קומפילציהאבל לשם כך אתה יכול לבקש מהתכנית שלך לטעון איזשהו מודול חיצוני שמישהו אחר כתב (למשל dll) ולחפש את הקלאס שם וגם זה תכונה של reflection
פורסם 2006 בנובמבר 2019 שנים מחבר אני באמת מודה לכם אבל הצלחתם קצת לבלבל אותיכי אני לא יודע ממה להתחילאני אנסה לתת דוגמית מה אני מנסה ללמוד לעשותותגידו לי מאיפה אני צריך להתחילנגיד יש לי בתוכנית שלי class סטודנטואני מחזיק בתוכנית טבלת סטודנטים ואני רוצה לעשות עליה מניפולציות שונותלדוגמה לתת חתך של הסטודנטים שבעלי שם מסוים או מתחילים באות מסוימתאו שיש להם שדה מיספרי כל שהוא ואני רוצה לדעת מי גדול יותר מערך מסוייםזה מאד פשוט לעשותעכשיו בתוכנית שלי אני רוצה שהמשתמש יכניס את האוביקט בין אם הוא סטודנטאו כל דבר אחר,הוא יקבע את כל המשתנים את הסוגים שלהם וגם איזה חתכיםשהוא רוצה כלומר יש אחידות בתוכנית רק כמות השדות , השמות שלהם וסוגם משתנהועוד משהו אני מן הסתם גם רוצה שהמשתמש יזין את הפרטים של האוביקטים שהוא רוצה להכניסלמערכת דרך ממשק ככה שאני צריך שגם ה class של הטופס יהיה דינאמי והשדות בו ישתנו בהתאםלמה שמשתמש הכניס
פורסם 2006 בנובמבר 2119 שנים מחבר סתם נתתי דוגמה,ברור שאני יכול להשתמש באקסס למה שתיארתימה שמעניין אותי זה ללמוד לעשות דברים ב JAVA שאני לא יודע לעשותהגעתי לרמה מסוימת ואני רוצה להיתקדםהנושא הספציפי של CLASS דינאמי מעניין אותי והוא יכול להיות מאד שימושיאני רק צריך הכוונה איפה להתחיל
פורסם 2006 בנובמבר 2119 שנים תנסה לנסח מה בדיוק הפעילות ה"דינאמית" שלך.לצורך מסד נתונים, אין לך צורך שיהיה לך class לכל סוג של רשומה.מספיק לך להחזיק מבנה נתונים שמתאר את השדות בכל טבלא (למשל - מערך של אובייקטים מסוג Class),וכל רשומה יכולה להיות פשוט מערך של אובייקטים מסוג Object.בנוסף אתה יכול להחזיק אינדקסים לאיזה שדות שאתה רוצה.אם אני זוכר נכון, מימשתי דבר כזה בדיוק בקורס במבנה נתונים לפני 4 שנים.
פורסם 2006 בנובמבר 2119 שנים מחבר הפיתרון שלך נחמד אבל לא ניראה לי שהוא יעבוד במקרה שאני ארצהלעשות חיתוך בין כמה טבלאות.בנוסף אני רוצה גם ממשק שישתנהבהתאם וזה לא יעזור לי בנקודה הזאתבקיצור בלי שום קשר למה שאני מנסה לכתובאני ממש רוצה ללמוד איך אני יוצר class'ים תוך כדי ריצה של התוכניתואחר כך להישתמש בהם.האם Reflection יענה על זה או שאני צריך משהו אחר
פורסם 2006 בנובמבר 2119 שנים אני מנסה להבין את השאלה יש לך טבלה של סטודנטים וטבלה קורסיםאתה רוצה לבנות מסך בניית שאילתה למשתמש כך שאם הוא בוחר לשלוף סטודנטים אז הפרמטרים שעל המסך ישתנו בהתאם למבנה סטודנטים וכאשר בוחחר קורסים אז המסך ישתנה למבנה המתאים לקורסים ואתה רוצה ששני המסכים יהיו בעצם פיסית אותו מסך זה המצב ?
פורסם 2006 בנובמבר 2119 שנים הרעיון שאתה מדבר עליו LOMPY נקרא MDAממליץ לך לקרוא עליו באתר של OMG.ORGאני כרגע לומד תכנות ב יג והפרוייקט גמר שלי מתבסס על הרעיון הזהמדובר על רעיון שבו התוכנית מקבלת קלט המייצג מבנה נתונים מסויים (למשל הסטודנט)ואז בונה אותו בזכרוןאחר כך אפילו ממשיך ליצור קוד כללי שלא מבוסס ממשית על שפה מסויימתואז ליצור קוד שניצן להריץ בקומפיילרהדבר שאתה מדבר עליו נשמע יותר כמו השלב הראשוןיש לך לפתור שם מספר בעיות למשל אם המשתמש מכניס שדה ID אז אתה צריך או לנחש בצרה כל שהיא איזה ערך הוא מיצג או לקבל ממנו את סוג הטיפוס וכו..אני עוד לא שמעתי על REFLECTION זה יכול לעזור מאוד גם ליאשמח להמשיך ולעדכן
פורסם 2006 בנובמבר 2119 שנים מחבר מדובר על רעיון שבו התוכנית מקבלת קלט המייצג מבנה נתונים מסויים (למשל הסטודנט)ואז בונה אותו בזכרוןאחר כך אפילו ממשיך ליצור קוד כללי שלא מבוסס ממשית על שפה מסויימתואז ליצור קוד שניצן להריץ בקומפיילרכן זה בערך הרעיון המשתמש יגיד לתוכנה מה הוא רוצה והקוד יבנה אוטומטי לפי הפרמטרים שהוא נתןלמשל סטודנט,עובד או כל דבר אחר המשתמש יגיד לתוכנה אני רוצה טבלת סטודנטים לכל סטודנט ישתז מסוג INT שם מסוג סטרינג וכו והתוכנה תדע לבנות CLASS מתאים בשם STUDENT אם הפרמטריםשהמשתמש ביקש וגם לפתוח מערך של סטודנטים ב CLASS אחר לתוכו הוא יוכל להזין את הנתונים של הסטודנטים עצמם
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.