[java] Short Value Java 설정

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


답변

일반적으로 변수를 캐스트하여 short.

혼란 스러울 수있는 이와 같은 문제가 발생할 수도 있습니다. 이는 +운영자가int

여기에 이미지 설명 입력

요소를 캐스팅해도 도움이되지 않습니다.

여기에 이미지 설명 입력

표현식을 캐스팅해야합니다.

여기에 이미지 설명 입력


답변

사용할 수 있습니다 setTableId((short)100). 나는 이것이 Java 5에서 변경되었으므로 바이트 또는 short에 할당 된 숫자 리터럴이 대상 유형으로 자동으로 가정됩니다. 최신 J2ME JVM은 Java 4에서 파생되었습니다.


답변