JAVAにはunsignedはありません。
理由は言語仕様だからとしか答えようがありませんが、
「数値型は符号を持つ事が義務付けられている」からです。
義務付けられているので根本的な対策はありません。
int型を使って、MIN=0 MAX=255 と決めてその範囲であることをチェックするしか方法はないと思います。
shortではなくintを使い
0~65535であることをチェックするしかないでしょう。
unsigned short などのような構文はありませんが、とりあえず負の値を使いたくないのなら char型を数値のように使えばよろしいかと思います。
char型のとりうる範囲は0~65535で、範囲外の数値はint型とみなされます(数値を直接代入する場合のみ)。
ただし負のintをcharにキャストすると上位ビットが欠落します。
理由は言語仕様だからとしか答えようがありませんが、
「数値型は符号を持つ事が義務付けられている」からです。
義務付けられているので根本的な対策はありません。
int型を使って、MIN=0 MAX=255 と決めてその範囲であることをチェックするしか方法はないと思います。
shortではなくintを使い
0~65535であることをチェックするしかないでしょう。
unsigned short などのような構文はありませんが、とりあえず負の値を使いたくないのなら char型を数値のように使えばよろしいかと思います。
char型のとりうる範囲は0~65535で、範囲外の数値はint型とみなされます(数値を直接代入する場合のみ)。
ただし負のintをcharにキャストすると上位ビットが欠落します。