2016-11-20 95 views
-4
class Example{ 
public static void main(String args[]){ 
int x=100; 
final int y=100; 
final int z; 
z=100; 

byte b1,b2,b3; 
b1=x; 
b2=y; 
b3=z; 

System.out.println(b1); 
} 

} 我得到一個錯誤,當我打印B1和B3 seperatly ..但thers沒有錯誤,如果我打印b2 seperatly ..Pls說明我得到當我打印B1和B3 seperatly錯誤。但thers沒有錯誤,如果我打印B2 seperatly ..Pls Explaine

+2

請說明問題 –

+1

檢查錯誤和失敗的代碼將是一個好的開始。 – David

+0

錯誤代碼:Example.java:12:錯誤:不兼容的類型:從int到字節的可能有損轉換 –

回答

1

A byte只能保持從-128到+127的值。如果你的int包含5000,那將是一個問題。明確地轉換成(byte)就是你在Java中所說的,「我知道我在做什麼,停止竊聽我。」

現在,它與b2=y一起工作的原因是因爲它在編譯時知道y=100,因此這個操作是安全的。它沒有關於xz的保證。

0

If you make any variable as final, you cannot change the value of final variable(It will be constant).

Source

zfinal,因此它是恆定的。但是,它沒有在聲明時初始化。後來給它分配一個值,但是沒關係。然後您將z指定爲b3並將其打印出來,但zfinal,並且只有在聲明後才賦值。由於不清楚應打印出什麼內容,因此出現錯誤。試着用

final int z = 100; 

代替。