-
Enhancement
-
Resolution: Duplicate
-
P4
-
None
-
6
-
x86
-
windows_xp
A DESCRIPTION OF THE REQUEST :
Reopen 4995668 as a request for enhancement
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4995668
JUSTIFICATION :
It is very difficult to understand the current specification of autoboxing/unboxing. Because narrowing primitive conversion after unboxing conversion and widening primitive conversion before boxing conversion doesn't work well. It needs an extra cast.
Although
int i1 = (int)2L;
can be compile,
int i2 = (int)Long.valueOf(2L);
^^^^^
can not be compiled. Now,
int i3 = (int)(long)Long.valueOf(2L);
^^^^^^
can be compile.
Although
float f1 = 2;
can be compile,
Float f2 = 2;
can not be compiled. Now,
Float f3 = (float)2;
^^^^^^^
can be compile.
P.S. Although
long l1 = 2;
can be compile,
Long l2 = Integer.valueOf(2);
can not be compiled. Now,
Long l3 = (long)Integer.valueOf(2);
^^^^^^
can be compile. I want to write
Long l2 = Integer.valueOf(2);
Reopen 4995668 as a request for enhancement
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4995668
JUSTIFICATION :
It is very difficult to understand the current specification of autoboxing/unboxing. Because narrowing primitive conversion after unboxing conversion and widening primitive conversion before boxing conversion doesn't work well. It needs an extra cast.
Although
int i1 = (int)2L;
can be compile,
int i2 = (int)Long.valueOf(2L);
^^^^^
can not be compiled. Now,
int i3 = (int)(long)Long.valueOf(2L);
^^^^^^
can be compile.
Although
float f1 = 2;
can be compile,
Float f2 = 2;
can not be compiled. Now,
Float f3 = (float)2;
^^^^^^^
can be compile.
P.S. Although
long l1 = 2;
can be compile,
Long l2 = Integer.valueOf(2);
can not be compiled. Now,
Long l3 = (long)Integer.valueOf(2);
^^^^^^
can be compile. I want to write
Long l2 = Integer.valueOf(2);
- duplicates
-
JDK-5009476 Compound assignments don't work well with Byte, Short
- Open
- relates to
-
JDK-4995668 Narrowing with autoboxing needs an extra cast
- Closed