본문 바로가기
프로그래밍 놀이터/안드로이드, Java

Long 을 Int 로 casting 할 때 다음을 고려하자.

by 돼지왕 왕돼지 2015. 12. 28.
반응형

 Long 을 Int 로 casting 할 때 다음을 고려하자.


Casting, down casting, IllegalArgumentException, iNT, integer, Java, long, long to int casting, Long 을 Int 로 casting 할 때 다음을 고려하자., maxvalue, max_value, minvalue, min_value, safelongtoint, 고려, 주의사항


-
casting 하려는 long 값이 양수, 음수를 모두 사용한다면, 그리고 충분히 큰 값을 사용한다면
함부로 int 로 casting 해서는 안된다.


-
안전한 down casting 다음과 같이 하면 좋다.

public static int safeLongToInt(long l) {

if (l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) {

throw new IllegalArgumentException(l + " cannot be cast to int without changing its value.");

}

return (int) l;

}



-

값 손실을 고려한다면 IllegalArgumentException 대신 최저 최고값인
Integer.MIN_VALUE 혹은 Integer.MAX_VALUE 를 각각 return 하면 되겠다.






반응형

댓글