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