4
A
답변
7
Long myUserId = 1; // error
1
은 int이기 때문에 작동하지 않습니다.
그것은에 자동 박스를 얻을 것이다 :
Integer myUserId = 1; // ok
또한으로 확대 얻을 것이다 :
long myUserId = 1; // also ok
있지만 둘
합니다.그래서, 그래, 당신은 Long
로 오토 박싱 얻을 수있는 long
인
Long myUserId = 1L;
을 말해야한다.
왜 그런 식으로 작동하는지 (또는이 경우에는 작동하지 않음) : 자동 권투가 나중에 (Java5에서) 추가되어 절대적으로 하위 호환이 가능해야 할 가능성이 큽니다. 그것은 그들이 그것을 어떻게 만들 수 있는지 "부드럽게"제한했습니다.
1
그렇지 않으면 Java는 모든 숫자 유형을 정수로 기본값으로 설정합니다.
유일한 이유 "1L는"심지어 (대신 원시 long
의)는 Long
에 할당 할 수있는 "1L"없이 자바 5
소개 된 "자동 복싱"로 인한 허용, "L"이 없으면 다음과 같이 보입니다.
Long myUserId = Integer.valueOf(1);
... 분명히 그 자체를 설명하기를 바랍니다. :-)
관련 문제
- 1. 절약을위한 PHP long 정수
- 2. LCM 2 long long 정수 중
- 3. jsp에서 double로 정수 (long) 변환
- 4. long ans = ((long) INT_MIN) * 2 - 1; 때문에 정수 오버 플로우
- 5. C++에서 long long 정수 대신 unsigned long 정수에 대한 포인터 사용
- 6. 자바 == 정수
- 7. 자바 : 간격의 임의의 long 값
- 8. long long to byte array
- 9. 자바 : 타입 캐스팅 질문
- 10. 자바 "신선한 타입 변수"
- 11. 프로토 타입 자바 스크립트
- 12. 자바 스크립트 - 프로토 타입
- 13. 자바 스크립트 프로토 타입
- 14. 자바 인터 타입 선언
- 15. 부호없는 long long double long
- 16. 자바 스크립트 정수 추가
- 17. 자바 : 속성이 INT와 정수
- 18. "long i = 1;" C에서 암시 적 타입 변환을 일으키는가?
- 19. double 형의 정수 부분을 검색하기위한 자바 typecasting
- 20. 오버로드 된 ambig (long) 및 ambig (unsigned long)를 정수 리터럴로 호출하는 것이 모호한 이유는 무엇입니까?
- 21. "long long (^ blockFun)() = (long long (^)()) moreBlockFun"은 무엇을 의미합니까?
- 22. "long int", "long long"데이터 형식
- 23. long long 계산의 문제
- 24. 부호없는 long long int
- 25. LCDS - 예상 목록 <Long>, 정수 배열 가져 오기
- 26. 자바 스크립트 프로토 타입 동작
- 27. 자바 가상 머신 : 타입 정보
- 28. 자바 스크립트 프로토 타입 구문
- 29. 자바 타입 캐스팅 및 상속
- 30. 자바 스크립트 객체 프로토 타입
그럼 처음 질문에 스스로 대답했습니다. – DMan
"1"(또는 "int"valued compile time expression)을 할당 할 수 있다고 생각 하겠지만 컴파일러는 할당을 수행하기 위해 캐스트를 수행합니다. –
@IraBaxter : 확장 된 캐스트 (int에서 long까지)를 수행 할 것이지만, 그 후에는 오토 박싱을하지 않을 것입니다. – Thilo