Java ו reflection לבנאי פרטי

nocgod

New member
Java ו reflection לבנאי פרטי

היי!
אני מנסה לעשות reflection למחלקה שמכילה 2 בנאים פרטיים (אחד רייק ואחד מקבל פרמטר)
אני מנסה באמצעות reflection לעשות instance חדש למחלקה (מדובר בחלק מAPI של pluginים שאני קורא מההארדיסק)

http://pastebin.com/xWqWm9ML


בנאים של המחלקה

http://pastebin.com/qC9AWWha


השגיאה שאני מקבל:

http://pastebin.com/CLRNXLpv


אולי אני לא עשיתי משהו נכון?
 

selalerer

New member
שים לב ל-$1 שיש בשם.

אני עובד על להיות מומחה Java, אבל עדיין לא שם, אז קח את הדברים בערבון מוגבל


נראה שהפונקציה שמביאה לך את כל המחלקות מביאה גם מחלקה פנימית אנונימית (שהקומפיילר נתן לה את השם היצירתי 1). הקריאה ל-getDeclaredConstructors עפה כשאתה קורה לה על המחלקה הזו. לא ממש הבנתי למה. אולי זה ככה קורה לכל המחלקות האנונימיות.

אולי למחלקה אנונימית אין ממש constructor כי אתה יוצר את האובייקט on-the-fly.

מעניין. אני אחפש על זה חומר.
 

nocgod

New member
שמתי לב, לא מבין בדיוק מאיפה הוא בא...

בכל מקרה מה שמוזר לי שזה לא מחלקה אנונימים זה מחלקה full pleged
 

selalerer

New member
לא הבנת.

מחלקות פנימיות, שם שלהן הוא השם של המחלקה העוטפת, אז $ ואז השם של המחלקה הפנימית. מחלקות אנונימיות מקבלות מספרים אוטומאטית מהקומפיילר בתור שמות.

זאת לא המחלקה החיצונית שלך הרגילה שאתה מכיר. זאת איזושהי מחלקה שאתה יצרת on-the-fly בקוד של המחלקה החיצונית הרגילה שאתה מכיר.

אתה צריך שהפונקציה שלך שמביאה לך את המחלקות תסנן אותן יותר בחוכמה ולא תחזיר לך מחלקות פנימיות (אם אני מבין נכון את מה שאתה מנסה לעשות).

אולי isMemberClass יעזור לך לסנן אותן.
 

nocgod

New member
הבנתי מה הייתה הבעיה

בתוך אחת מהמחלקות כבר התחלתי לממש והיה לי בה מימוש לrunnable...ככה בקטנה להריץ thread.
עכשיו פשוט אמרתי לו להתעלם קיבינימט לגמרי מכל שם מחלקה שמכיל $ (זה גם ככה לא יהיה בconvention של הפלאגינים)

תודה על הכיוון :)
 
למעלה