GoGPT Best VPN GoSearch

סמל OnWorks

clirr - מקוון בענן

הפעל את clirr בספק האירוח החינמי של OnWorks על אובונטו אונליין, פדורה מקוון, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זהו הפקודה clirr שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


clirr - בדוק מקור ותאימות בינארית של ספריות Java

תַקצִיר


קליר -o oldjar -n newjar [אפשרויות]

תיאור


Clirr הוא כלי שבודק ספריות Java עבור תאימות בינארית ומקור עם ישנים יותר
משחרר. בעיקרון אתה נותן לו שתי קבוצות של קבצי jar וClirr מוציאה רשימה של
שינויים ב-API הציבורי.

אפשרויות


-a, --הצג את כל היקפים

להראות שיעורים פרטיים וחבילות

-f, --קובץ פלט

שם קובץ פלט

-i, --include-pkg

כוללים רק שיעורים מחבילה זו ומחבילות המשנה שלה

-n, --גרסה חדשה

קובצי jar של גרסה חדשה

-ncp, --new-classpath

נתיב class של צד שלישי שאליו מפנה גרסה חדשה

-o, --גרסה ישנה

קובצי jar בגרסה הישנה

-ocp, --orig-classpath

נתיב class של צד שלישי שאליו מתייחס הגרסה הישנה

-p, --show-pkg-scope

הצג שיעורי היקף חבילה

-s, --סִגְנוֹן [טקסט|xml]

סגנון פלט

הודעות


כאשר clirr יוצר הודעת ERROR, WARNING או INFO לגבי שינוי בצנצנות
בהשוואה, יש קוד התייחסות להודעה משויך. מדריך זה מכיל
הסבר על המשמעות של אותה הודעה שעלולה להכיל מידע שלא יכול היה
להיות מותאם לסיכום ההודעה הקצרה.

הודעות מופרדות לשלוש רמות חומרה: שגיאה, אזהרה ומידע.

שגיאות מגיעות בשני טעמים:

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

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

Clirr מדווחת על "שגיאות" למקרים בהם ניתן לקבל כשל בזמן ריצה. האם
אחד מתרחש בפועל יכול להיות תלוי באופן שבו קוראים לספרייה, כלומר שינויים מדווחים
כיוון ששגיאה עשויה למעשה לעבוד בשימוש כל עוד דפוסי השימוש של הספרייה עושים זאת
לא לעורר את מצב הכישלון.

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

הודעות מידע מספקות למשתמשים מידע על תכונות חדשות שהיו
נוסף מבלי לשבור את התאימות לאחור בשום אופן.

כאשר משתמשים ב-clirr כדי לדווח על שינויים בפריטים שיש להם היקף פרטי או חבילה, אלה
שינויים תמיד מדווחים כשינויים ברמת INFO, לעולם לא רמת אזהרה או שגיאה. זֶה
מאפשר למשתמשי clirr להפיק "דוחות שינוי" ברמה המתאימה למפתחים
מבלי שחלק מהשינויים האלה יסומנו (באופן לא רלוונטי) כאי התאמה בינארית.

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

Clirr אינה מדווחת על אזהרות או שגיאות של אי תאימות בינארית עבור פריטים בהיקף חבילה
או, כי חבילות Java מיועדות להיות "יחידות שחרור", כלומר כל המחלקות שבתוכם
חבילה מורכבת יחד (הבטחת תאימות) ואז משוחררת כיחידה. היחיד
הזמן שחוסר תאימות של היקף החבילה עשוי להיות בעיה הוא כאשר משתמשים של a
הספרייה כותבים מחלקות משלהם באמצעות הצהרת חבילה השייכת לחלק חיצוני
ספרייה, או כאשר נעשה שימוש בתת-קבוצה של מחלקות מעודכנות (למשל מחלקה בודדת) מחבילה
לעקוף מחלקות מסוימות מגרסה קודמת של הספרייה. שניהם
מצבים נחשבים לתרגול לקוי מאוד על ידי מוסכמות התכנות של Java.

בסעיפים הבאים, המונח "ישן" משמש להתייחסות למחלקה, ממשק, שיטה
או שדה מקבוצת הצנצנות המייצגות את הגרסה הישנה/קודמת/מקורית/בסיסית
של הספרייה הנבדקת. המונח "חדש" משמש להתייחסות למחלקה, ממשק,
שיטה או שדה מקבוצת הצנצנות המייצגות את הגרסה החדשה/הנוכחית/העדכנית ביותר של ה-
הספרייה נבדקת.

בסעיפים הבאים, המונח "סוג" משמש להתייחסות למשהו שיכול להיות
מחלקה או ממשק.

1000 - מוּגדָל ראות of בכיתה

חומרה: מידע

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

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

לא משנה אם האובייקט הוא ברמה העליונה או מקונן, שינוי בנגישות
משמאל לימין של הרצף פרטי->חבילה->מוגן->ציבורי תמיד
מבטיח שכל הקוד שהיה יכול לגשת בעבר לסוג הזה עדיין יכול לגשת אליו
סוּג. לכן שינוי כזה הוא תמיד בינארי ותואם קוד מקור.

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

1001 - ירידה ראות of בכיתה

חומרה: שגיאה

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

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

לא משנה אם הסוג הוא ברמה העליונה או מקונן, שינוי בנגישות
משמאל לימין של הרצף public->protected->package->private עלול לגרום
קוד קיים שיכול בעבר לגשת לסוג כדי שלא יוכל לעשות זאת יותר.

סעיף 13.4.3 של מפרט שפת Java קובע במפורש כי an
IllegalAccessError אמור להתרחש אם בינארי קיים מנסה לגשת לסוג
כאשר סוג הנגישות שונתה למשהו שיגרום ל-a
שגיאת זמן קומפילציה. אולם נראה כי הדבר אינו נאכף בפועל, ב
לפחות ב-JVM הנוכחיים. בכל זאת זו אמורה להיות שגיאה, וכך מדווחת clirr
שינוי זה כשגיאת תאימות בינארית.

2000 - השתנה החל מ- בכיתה ל ממשק

חומרה: שגיאה

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

2001 - השתנה החל מ- ממשק ל בכיתה

חומרה: שגיאה

הממשק שצוין הפך למחלקה בגרסה החדשה. השינוי הזה הוא
תמיד חוסר תאימות בינארי וקוד מקור, מסיבות ברורות.

3001 - הוסר סופי מתקן החל מ- בכיתה

חומרה: מידע

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

3002 - נוסף סופי מתקן ל יעילות סופי בכיתה

חומרה: מידע

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

3003 - נוסף סופי מתקן ל בכיתה

חומרה: שגיאה

המחלקה שצוינה לא הוכרזה כסופית בגרסה הישנה, ​​אך היא הוכרזה כעת
סופי. כל מחלקות קיימות מראש שהוכרזו כתתי מחלקות של מחלקה זו
לכן לא יהיה תקף עם הגרסה החדשה של הספרייה.

VerifyError נזרק על ידי ה-classloader כאשר נעשה ניסיון לטעון א
תת מחלקה של מחלקה אחרונה.

שים לב שמחלקה Y נטען על ידי מטען הכיתה הסטנדרטי רק כאשר הראשון
נעשה ניסיון ליצור מופע של Y, או להפנות ישירות למחלקה
אובייקט עבור מחלקה Y. אם למחלקה X אחרת יש מחלקה Y כחבר מוצהר, או כ- a
פרמטר לשיטה כלשהי, ואז טעינת מחלקה X לא גורמת לטעינת מחלקה Y.

3004 - הוסר תַקצִיר מתקן החל מ- בכיתה

חומרה: מידע

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

3005 - נוסף תַקצִיר מתקן ל בכיתה

חומרה: שגיאה

הגרסה הישנה של מחלקה זו לא הוכרזה כמופשטת. הגרסה החדשה היא
תַקצִיר. קוד קיים מראש שיוצר מופעים של מחלקה זו אינו עוד
תקף עם הגרסה החדשה.

4000 - נוסף ממשק ל מה היא סט of יושם ממשקים

חומרה: מידע

הגרסה החדשה של הסוג מיישמת כעת ממשק נוסף. זה לא
לבטל כל קוד קיים (מקור או בינארי), והוא לחלוטין
שינוי תואם לאחור.

שימו לב שניתן לדווח על הודעה זו ללא שינוי כלשהו ב-
סוג שצוין; שינוי במערך הממשקים הנתמכים על ידי סוג יגרום
הודעה זו תדווח עבור כל צאצא מסוג זה.

4001 - הוסר ממשק החל מ- מה היא סט of יושם ממשקים

חומרה: שגיאה

הגרסה הישנה מסוג זה הצהירה שהיא הטמיעה ממשק שה-
מחלקה או ממשק חדש לא. קוד קיים שמטיל באופן מפורש או מרומז
אובייקטים מסוג זה לממשק החסר כעת אינם תקפים עוד.

שימו לב שניתן לדווח על הודעה זו ללא שינוי כלשהו ב-
סוג שצוין; שינוי במערך הממשקים הנתמכים על ידי סוג יגרום
הודעה זו תדווח עבור כל צאצא מסוג זה.

5000 - נוסף בכיתה ל מה היא סט of כיתות על

חומרה: מידע או אזהרה

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

אם למחלקה שצוינה יש java.lang.Throwable כאב קדמון, אז השינוי הזה הוא
דווח כאזהרה, מכיוון ששינוי מחלקה זה עשוי לשנות את תפיסת החריג
התנהגות של תוכניות המשתמשות במחלקה זו.

שימו לב שניתן לדווח על הודעה זו ללא שינוי כלשהו ב-
מחלקה שצוינה; שינוי במערך של מחלקות-על של מעמד אבות
לגרום להודעה זו לדווח עבור כל כיתה צאצא.

5001 - הוסר בכיתה החל מ- מה היא סט of כיתות על

חומרה: שגיאה

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

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

שימו לב שניתן לדווח על הודעה זו ללא שינוי כלשהו ב-
מחלקה שצוינה; שינוי במערך של מחלקות-על של מעמד אבות
לגרום להודעה זו לדווח עבור כל כיתה צאצאית.

שימו לב גם שאם לכיתה הזו יש Throwable במוצאו, אז הכיתה
שינוי היררכיה יכול גם לגרום לשינויים בהתנהגות תופסת החריגים של
תוכניות המשתמשות במחלקה זו.

6000 - נוסף שדה

חומרה: מידע

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

6001 - הוסר שדה

חומרה: שגיאה

המחלקה החדשה הסירה שדה קיים בגרסה הישנה. קוד קיים מראש
אשר ניגש ישירות לשדה זה לא יהיה תקף יותר.

6002 - ערך of שדה לא עוד a זמן הידור קבוע

חומרה: אזהרה

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

6003 - ערך of זמן הידור קבוע יש ל השתנה

חומרה: אזהרה

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

6004 - שדה סוג השתנה

חומרה: שגיאה

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

6005 - שדה עַכשָׁיו לא סופי

חומרה: מידע

השדה היה בעבר סופי, ואינו סופי יותר. זה אומר שהשדה
כעת ניתן לשנות את הערך במהלך חיי המחלקה או המופע.

האם ערך בשדה יכול להיות בעבר "מוטבע" במחלקות אחרות הוא an
הבעיה טופלה בהודעות 6002 ו-6003, לא בהודעה זו.

6006 - שדה עַכשָׁיו סופי

חומרה: שגיאה

לא ניתן עוד לשנות את השדה במהלך חיי המחלקה או המופע.
לכן הקוד ששינה בעבר שדה זה אינו תקף עוד.

6007 - שדה עַכשָׁיו לא סטטי

חומרה: שגיאה

השדה הוא כעת משתנה מופע ולא משתנה מחלקה. קוד איזה
ניגש בעבר לשדה זה דרך המחלקה ולא מופע של המחלקה
אינו תקף יותר.

6008 - שדה עַכשָׁיו סטטי

חומרה: שגיאה

השדה הוא כעת משתנה מחלקה ולא משתנה מופע.

מסיבה כלשהי (כנראה בעיות יישום פנימיות), תקן Java
מצהיר ששינוי זה אינו תואם בינארי, וכי an
IncompatibleClassChangeError תושפך אם קוד הידור נגד ה"ישן"
גרסה של מחלקה משמשת יחד עם גרסה "חדשה" שעבורה יש כעת שדה
סטָטִי.

מכיוון שקוד המקור מותר לגשת למשתני מחלקה דרך מופעים של זה
class, זה צפוי להיות שינוי תואם קוד מקור. אולם כרגע
CLIRR מדווח על כך גם כשגיאה עבור תאימות קוד מקור.

6009 - שדה עוד נגיש

חומרה: מידע

בגרסה החדשה, השדה שצוין נגיש ליותר קוד ממה שהיה
קוֹדֶם.

6010 - שדה פָּחוּת נגיש

חומרה: שגיאה

בגרסה החדשה, השדה שצוין נגיש לפחות קוד ממה שהיה
קוֹדֶם. לכן ייתכן שהקוד הקיים כבר לא תקף.

6011 - הוסר קָבוּעַ שדה

חומרה בינארית: אזהרה

חומרת המקור: שגיאה

המחלקה החדשה הסירה שדה קיים בגרסה הישנה. מקור קיים מראש
קוד הניגש ישירות לשדה זה לא יהיה תקף עוד.

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

7000 - שִׁיטָה עַכשָׁיו in מעמד-על

חומרה: מידע

למחלקה הישנה הייתה שיטה בשם X. למחלקה החדשה כבר אין את השיטה הזו, אלא א
מחלקת אב אכן מגדירה את השיטה הזו, כך שאין אי-תאימות בינארית או מקור
התרחש.

שים לב ששינוי זה עשוי להשפיע על כך שיאלץ את המחלקה החדשה להפוך
'תַקצִיר'. אם זה המקרה, שינוי זה מדווח בנפרד.

7001 - שִׁיטָה עַכשָׁיו in מִמְשָׁק

חומרה: מידע

למחלקה או לממשק הישנים הייתה בעבר שיטה בשם X. המחלקה החדשה או
לממשק אין עוד שיטה זו, אבל ממשק אב כן מגדיר זאת
שיטה, כך שלא התרחשה אי התאמה בינארית או אי תאימות למקור.

שים לב ששינוי זה עשוי להשפיע על כך שיאלץ את המחלקה החדשה להפוך
'תַקצִיר'. אם זה המקרה, שינוי זה מדווח בנפרד.

7002 - שִׁיטָה הוסר

חומרה: שגיאה

למחלקה או לממשק הישנים הייתה שיטה בשם X. המחלקה או הממשק החדשים מס
ל-long יש את השיטה הזו, ושיטה זו אינה מוגדרת באף מחלקה אב או
מִמְשָׁק.

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

7003 - שִׁיטָה מעבר הוסר

חומרה: מידע

השיטה שצוינה במחלקה או בממשק הישנים דרסה בירושה
הַגדָרָה. למחלקה או לממשק החדשים אין יותר שיטה זו במפורש
הכריז על זה, אבל זה עדיין יורש הגדרה כך שאין בינארי
אי התאמה. 7004 - שיטה ספירת טיעונים שונתה

חומרה: שגיאה

לשיטה שצוינה נוספו או הוסרו ארגומנטים. זה אומר את הקוד אשר
שהופעל בעבר, זה לא יפעיל עוד את אותה שיטה.

אם יש הגדרת שיטה בירושה עם אב הטיפוס הישן, אז אין
אי התאמה בינארית; קוד שהודר כנגד הגרסה הישנה של זה
מחלקה תפעיל כעת את היישום שעבר בירושה. במצב זה, clirr צריך
פלט הודעת INFO במקום שגיאה. עם זאת, בתאריך הנוכחי, clirr
לא בודק את המצב הזה.

אם אין הגדרת שיטה בירושה עם אב הטיפוס הישן, אז השינוי
הוא אי התאמה בינארית.

7005 - שִׁיטָה טיעון סוּג השתנה

חומרה בינארית: INFO או שגיאה

חומרת המקור: שגיאה

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

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

אם אין הגדרת שיטה בירושה עם אב הטיפוס הישן, אז השינוי
הוא אי התאמה בינארית.

אם סוגי הפרמטרים השתנו כולם שונו לסוגי-על מהקודמים שלהם
טיפוסים מוצהרים, או עבור סוגי פרמטרים פרימיטיביים אם הם שונו ל"גדולים יותר"
סוגים בכל מקרה, אז הקוד החדש תואם לקוד המקור הקודם
שחרר גם אם הוא לא תואם בינארי. שימו לב שבמצב זה,
הידור מחדש של קוד שמשתמש בספרייה עשוי לשנות את התנהגותו מקריאת an
שיטה בירושה לקריאה למתודה במחלקה שיש לה מעט שונה
אב טיפוס. בתאריך הנוכחי, clirr לא בודקת את המצב הזה.

7006 - שִׁיטָה לחזור סוּג השתנה

חומרה בינארית: שגיאה

חומרת המקור: INFO או שגיאה

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

השינוי תואם קוד מקור אם ורק אם סוג ההחזר החדש הוא
ניתן להקצות לסוג ההחזר הישן. זה אומר ש:

אם סוג ההחזר הישן היה סוג פרימיטיבי, אזי סוג ההחזר החדש חייב להיות
צר יותר מהסוג הישן.
אם סוג ההחזר הישן היה ממשק, אז סוג ההחזרה החדש חייב להיות a
מחלקה או ממשק המיישמת את סוג ההחזר הישן.
אם סוג ההחזר הישן היה מחלקה, אז סוג ההחזרה החדש חייב להיות תת מחלקה
מהסוג שהוחזר קודם לכן.

Clirr אינה בודקת כעת תאימות קוד מקור לשינויים בשיטה
סוגי החזרות; כרגע אלה פשוט מדווחים כשגיאה.

7007 - שִׁיטָה יש ל היה לא מומלץ לשימוש

חומרה: מידע

השיטה שצוינה הוכרזה כ"הוצאה משימוש". זה תמיד א
שינוי תואם בינארי וכן שינוי תואם קוד מקור.

7008 - שִׁיטָה יש ל היה לא ידוע מראש

חומרה: מידע

השיטה שצוינה הוכרזה "מוציאה משימוש" בגרסה הקודמת, אך היא לא
הוצא משימוש יותר במהדורה הנוכחית. אמנם מעט יוצא דופן, אבל זהו
מוּתָר. שינוי זה הוא תמיד שינוי תואם בינארי וכן א
שינוי תואם קוד מקור.

7009 - שִׁיטָה is עַכשָׁיו פָּחוּת נגיש

חומרה: שגיאה

הרשאות הגישה המשויכות לשיטה שצוינה הוחזקו
אפשר פחות קוד משתמש לגשת לשיטה.

אם השינוי הזה הוא בעיית תאימות לקוד מקור או לא תלוי
דפוסי שימוש.

שינוי זה צריך להיות אי התאמה בינארית. עם זאת, שים לב ש-JVM נוכחיים כן
לא לאמת זאת. קוד הידור כנגד גרסה קודמת של מחלקה יכול
להפעיל בהצלחה שיטות שאין להם עוד זכויות גישה להן.
עם זאת, מפרט שפת Java קובע שזו שגיאה, אז
clirr מדווחת על שינוי זה כאי התאמה בינארית.

7010 - שִׁיטָה is עַכשָׁיו עוד נגיש

חומרה: מידע

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

7011 - שִׁיטָה נוסף

חומרה: מידע

שיטה לא מופשטת נוספה למחלקה שצוינה. זה תמיד א
שינוי תואם בינארי.

זהו גם שינוי תואם קוד מקור.

ש: אם השיטה החדשה עוקפת שיטה שעברה בירושה, אז איזו גרסה מקודדת
הידור נגד הפעלת הספרייה הישנה?

7012 - שִׁיטָה נוסף ל מִמְשָׁק

חומרה בינארית: שגיאה

חומרת המקור: שגיאה

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

קוד ישן שמפעיל מתודות לאחר הידור של קוד מול החדש (מורחב)
הממשק ימשיך לעבוד ללא בעיות. וקוד ישן שמיישם את
גם הגרסה הישנה של הממשק תמשיך לעבוד כהלכה כל עוד לא
קוד מנסה להפעיל כל אחת מהשיטות החדשות שנוספו כנגד המופע הזה. אבל
קוד אשר (בתוקף) מפעיל את אחת השיטות החדשות בממשק כנגד an
אובייקט שמיישם רק את הגרסה הישנה של הממשק יגרום ל-
AbstractMethodError להיזרק בזמן ניסיון הפעלת השיטה.

הוספת שיטה לממשק תמיד מדווחת כ-ERROR, כי מחלקות
המיישמים את הממשק הזה חייב להיות שונה כדי ליישם את המוצהר
שִׁיטָה.

7013 - תַקצִיר שִׁיטָה נוסף ל כיתה

חומרה בינארית: שגיאה

חומרת המקור: שגיאה

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

אם נוצרים מופעים של אובייקטים שהידור כנגד המחלקה הישנה, ​​אזי שלהם
ניתן להפעיל שיטות ללא בעיות. אבל אם השיטה המופשטת החדשה שנוספה היא
הופעל אי פעם, אז נזרק AbstractMethodError בזמן השיטה
מנסים להתקשר.

7014 - שִׁיטָה עַכשָׁיו סופי

חומרה: שגיאה

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

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

7015 - שִׁיטָה עַכשָׁיו לא סופי

חומרה: מידע

השיטה הייתה בעבר סופית, וכעת אינה סופית. זה תמיד א
שינוי תואם בינארי.

8000 - כיתה נוסף

חומרה: מידע

בגרסה החדשה של הספרייה יש מחלקה שלא הייתה קיימת בגרסה הישנה
הגירסה.

8001 - כיתה הוסר

חומרה: שגיאה

הגרסה החדשה של הספרייה כבר לא מכילה את המחלקה שצוינה.

דוגמאות


בדוק את התאימות של ספריה לגרסה קודמת:

clirr -o foo-1.0.jar -n foo-2.0.jar

בדוק את התאימות לאחור של ספרייה חדשה בהתאם לרישום של Apache Commons:

clirr -o foo-1.0.jar -n foo-2.0.jar -ocp /usr/share/java/commons-logging.jar -ncp
/usr/share/java/commons-logging.jar

דף הבית


http://clirr.sourceforge.net

נובמבר 2013 CLIRR(1)

השתמש ב-clirr באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad




×
פרסומת
❤️קנו, הזמינו או קנו כאן - ללא עלות, עוזר לשמור על שירותים בחינם.