2017-02-12 28 views
-1

私はjavaを学んでいて、それらの中にノート付きの簡単なテストプログラムを作成していますが、「互換性のない型:intからshortへの可逆変換」というエラーが出てきます。shortVal = val5 + val6;私は見ており、このエラーは私が短い変数にint値を入れようとしていることを意味していますが、私が短く格納している値はわずか27なので、何が間違っているかについてちょっと混乱します。互換性のない型エラーが発生するのはなぜですか?

public class test{ 
    public static void main(String[] args){ 
     double val1=4; 
     float val2=9; 
     long val3=30; 
     int val4= 8; 
     short val5= 15; 
     short val6=12; 
     byte val7=20; 
     short shortVal= val5 + val6; //why the error here? 
    } 
} 
+1

より正確な複製:http://stackoverflow.com/questions/5919423/why-am-i-getting-a-warning-about-possible-loss-あなたは結果を格納するためにint変数が必要javaの精度の精度 –

+0

http://stackoverflow.com/questions/477750/primitive-type-short-casting-in-java – shmosel

+0

[完全に**検索してください](/ search?q =%5Bjava% 5D +互換性なし+タイプ%3A +可能+損失+変換+ + int +〜+短)。 [ここ](/ help/searching)の検索の詳細。 –

答えて

1

short + shortの結果は、いくらか逆説、intあります。したがって、変数(shortVal)にintを割り当てようとしています。

1

short + shortは、intとなります。

int shortVal = val5 + val6;