int→long→float→doubleの順で器が大きくなっていく
unboxing, boxingはInteger⇔int, Float⇔floatなどprimitive, wrapperの間でのみ
行われる。いくら器が大きいといってもDouble⇔intはtypeが異なるのでだめ。
public static void main(String[] args) {
int i = 1;
int i2 = 1.0; //err int = double
Integer i3 = 1;
Integer i4 = 1.0; //err Integer = double
long l = 1;
long l2 = 1.0; //err long = double
long l3 = 1L;
Long l4 = 1; //err Long = int
Long l5 = 1.0; //err Long = double
long l6 = i;
float f1 = 1;
float f = 1.0; //err float = double
float f2 = 1.0F;
Float f3 = 1; //err Float = int
Float f4 = 1.0; //err Float = double
float f5 = i;
float f6 = l;
double d = 1.0;
double d2 = 1.0;
double d3 = 1;
Double d4 = 1; //err Double = int
Double d5 = 1.0;
double d6 = f2;
double d7 = l3;
double d8 = i;
}
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:13: エラー: 不適合な型: 精度が失われる可能性があるdoubleからintへの変換
int i2 = 1.0; //err int = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:15: エラー: 不適合な型: doubleをIntegerに変換できません:
Integer i4 = 1.0; //err Integer = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:17: エラー: 不適合な型: 精度が失われる可能性があるdoubleからlongへの変換
long l2 = 1.0; //err long = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:19: エラー: 不適合な型: intをLongに変換できません:
Long l4 = 1; //err Long = int
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:20: エラー: 不適合な型: doubleをLongに変換できません:
Long l5 = 1.0; //err Long = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:23: エラー: 不適合な型: 精度が失われる可能性があるdoubleからfloatへの変換
float f = 1.0; //err float = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:25: エラー: 不適合な型: intをFloatに変換できません:
Float f3 = 1; //err Float = int
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:26: エラー: 不適合な型: doubleをFloatに変換できません:
Float f4 = 1.0; //err Float = double
C:\Users\java\Documents\NetBeansProjects\SampleProject\src\sampleproject\SampleProject.java:32: エラー: 不適合な型: intをDoubleに変換できません:
Double d4 = 1; //err Double = int