J2ME에서 약간의 코드를 작성하고 있습니다. 메서드가있는 클래스가 setTableId(Short tableId)
있습니다. 이제 작성하려고 할 때 setTableId(100)
컴파일 시간 오류가 발생합니다. 다른 short 변수를 선언하지 않고 어떻게 short 값을 설정할 수 있습니까?
Long
값을 설정할 때 사용할 수 setLongValue(100L)
있고 작동합니다. 그렇다면 L
여기서 의미 는 무엇이며 Short
가치에 대한 성격은 무엇 입니까?
감사
답변
Java에서 정수 리터럴은 기본적으로 int 유형입니다. 다른 유형의 경우와 같은 대소 문자를 구분 문자로 문자 그대로의 접미사 수 L
, D
, F
각각, 긴, 더블, 또는 플로트를 지정할 수 있습니다. 가독성을 높이기 위해 대문자를 사용하는 것이 일반적입니다.
Java 언어 사양은 바이트 또는 짧은 유형에 대해 동일한 구문 설탕을 제공하지 않습니다. 대신 명시 적 캐스팅을 사용하여이를 선언 할 수 있습니다.
byte foo = (byte)0;
short bar = (short)0;
당신의에서 setLongValue(100L)
메서드 호출, 당신은 포함 반드시 할 필요는 없습니다 L
이 경우에는 INT의 문자가 자동으로 오래에 확대되기 때문에 접미사. 이를 Java 언어 사양에서 확장 기본 변환이라고합니다.
답변
바이트 또는 짧은 리터럴과 같은 것은 없습니다. 짧게 캐스트해야합니다.(short)100