JAVA והמרה מbyte לint

tseliot

New member
JAVA והמרה מbyte לint

אקליפס לא מקבל את השורה הבאה בטענה שאני מנסה לבצע המרה מbyte לint
byte a=0; byte b=a+1;//error​
לעומת זאת, את זה הוא כן מרשה:
byte a=0; byte b=a; b+=1;​
למה?
 

voguemaster

New member
קרא בקישור

הנה קישור בשבילך. הסיפור הוא בגדול שאופרטור חיבור של מספרים מבצע המרה אוטומטית של האופרנדים כדי לקבל טיפוס מסוג מסוים עבור התוצאה. אם אין מספר ממשי (float או double) בתור אופרנד ואין long, כל הביטוי הופך אוטומטית לטיפוס מסוג int ולכן נדרש cast בסוף. כל זה מתואר בטבלאות שיש בקישור שצירפתי. האופרטור =+ לא משנה את הטיפוס ואין איתו בעיה. חשוב מאוד גם לציין שאופרטור חיבור unary מבצע promotion לסוג הטיפוס. אם הוא "קטן" מ-int, הוא מקודם להיות int (ולכן כנראה צריך cast).
 
למעלה