[java] Java에서 int에서 Long으로 어떻게 변환합니까?

여기에 모두를 찾아 계속 구글 사람들로부터가는 문제 필요 longint하지 다른 방법으로 주위를. 그러나 나는이 시나리오를 시작하기 전에이 시나리오를 실행 한 유일한 사람이 아니라고 확신 int합니다 Long.

내가 찾은 유일한 다른 답변은 “처음에는 길게 설정했다”는 것인데 실제로 질문을 다루지 않습니다.

처음에 캐스팅을 시도했지만 ” Cannot cast from int to Long“가 표시됩니다.

for (int i = 0; i < myArrayList.size(); ++i ) {
    content = new Content();
    content.setDescription(myArrayList.get(i));
    content.setSequence((Long) i);
    session.save(content);
}

내가 조금 당황했다고 상상할 수 있듯이 int일부 콘텐츠가 들어 오고이 ArrayList정보를 저장하는 엔티티에는 시퀀스 번호가 Long이기 때문에 사용이 중단되었습니다.



답변

캐스트 long와 캐스트 사이에는 차이 가 Long있습니다. long(원시 값)으로 캐스트하면 자동으로 (포장 Long하는 참조 유형) 상자로 채워 져야합니다 .

또는 new의 인스턴스를 생성 Long하여 int값으로 초기화하는 데 사용할 수도 있습니다 .


답변

다음을 사용하십시오 Long.valueOf(int);..


답변

정수를 정수로 입력 한 경우 다음을 수행 할 수 있습니다.

Integer y = 1;
long x = y.longValue();


답변

사용하다

new Long(your_integer);

또는

Long.valueOf(your_integer);


답변

나는이 작은 장난감을 가지고 있는데, 그것은 또한 일반적인 인터페이스가 아닌 인터페이스를 다룹니다. 피드가 잘못되면 ClassCastException이 발생해도 괜찮습니다 (OK and happy)

public class TypeUtil {
    public static long castToLong(Object o) {
        Number n = (Number) o;
        return n.longValue();
    }
}


답변

Java에서는 다음을 수행 할 수 있습니다.

 int myInt=4;
 Long myLong= new Long(myInt);

귀하의 경우에는 다음과 같습니다.

content.setSequence(new Long(i));


답변

어떻게

int myInt = 88;

// 컴파일하지 않습니다

Long myLong = myInt;

// int의 NULL이 아닌 정신을 컴파일하고 유지합니다. 최고의 캐스트전혀 캐스트되지 않습니다 . 물론 사용 사례에 Long 및 가능한 NULL 값이 필요할 수 있습니다. 그러나 int 또는 다른 long이 유일한 입력이고 방법을 수정할 수 있다면이 접근법을 제안합니다.

long myLong = myInt;

// 컴파일하는 것이 가장 효율적인 방법이며 소스 값이 NULL이 아니며 절대 NULL이 아님을 분명히합니다.

Long myLong = (long) myInt;