Java에서 int에서 Long으로 변환하려면 어떻게 하나요?

나는 여기와 구글에서 long에서 int로 이동하는 데 어려움을 겪고있는 사람들을 계속 발견하고 있습니다. 그러나 'in'에서 'Long'으로 전환하기 전에 이러한 시나리오에 직면 한 사람은 저 혼자가 아니라고 확신합니다.

제가 찾은 유일한 다른 답변은 "그냥 처음부터 길게 설정하세요"였는데, 이는 실제로 질문을 해결하지 못합니다.

처음에 캐스팅을 시도했지만 <`int에서 Long으로 캐스팅 할 수 없습니다``라는 메시지가 표시됩니다;

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

약간 당황스러웠겠지만, 일부 콘텐츠가 '배열 목록'으로 들어오고 이 정보를 저장하는 엔티티에 시퀀스 번호가 Long으로 필요하기 때문에 'int'를 사용할 수 없습니다.

질문에 대한 의견 (4)
해결책

long으로 형변환하는 것과Long으로 형변환하는 것에는 차이가 있다는 점에 유의하세요. long(원시 값)으로 형변환하면 자동으로 Long(이를 감싸는 참조 유형)으로 박스 처리되어야 합니다.

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

해설 (8)

다음을 사용합니다: Long.valueOf(int);.

해설 (8)

int를 이미 정수로 입력한 경우 이 작업을 수행할 수 있습니다:

Integer y = 1;
long x = y.longValue();
해설 (0)

&lt 사용하여 br>;

new Long(your_integer);

또는

Long.valueOf(your_integer);
해설 (0)

나는 이 작은 장난감, 함께 제공하는 계약을 비사양 일반 인터페이스입니다.

39 m OK, it 와 i& 던져 클라스카스티스세페시옹 급지가 잘못된 경우 (OK 행복한)

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

자바 가상 머신 (jvm) 에 할 수 있습니다.

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

이 경우에는 다음과 같이 쓸 수 있다.

content.setSequence(new Long(i));
해설 (0)

어떤가.

int myInt = 88;

// 컴파일하십시오 않습니다.

Long myLong = myInt;

Int 는 컴파일 및 // 캐스트 (cast) 는 전혀 없는 최고의 null 이 아닌 물으리라. . 물론 너회의 览侩 荤례 길고 가능한 NULL 값을 할 수 있습니다. Int 는 입력 및 걷고, 또는 기타 신앙이니라 해결할 수 있는 유일한 방법, 난 이 외곽진입 제안하세요 수정할 수 있습니다.

long myLong = myInt;

가장 효율적인 방법으로 하면 소스 컴파일, //, 가치, 그리고 널일 결코 분명히 있다.

Long myLong = (long) myInt;
해설 (0)
 1,new Long(intValue);
 2,Long.valueOf(intValue);
해설 (0)

We shall 내려받습니다 기절해있는 사용하여 값을 '숫자' 참조입니다.

public static long toLong(Number number){
    return number.longValue();
}

여기에 작동하잖아 모든 숫자 유형 테스트:

public static void testToLong() throws Exception {
    assertEquals(0l, toLong(0));   // an int
    assertEquals(0l, toLong((short)0)); // a short
    assertEquals(0l, toLong(0l)); // a long
    assertEquals(0l, toLong((long) 0)); // another long
    assertEquals(0l, toLong(0.0f));  // a float
    assertEquals(0l, toLong(0.0));  // a double

}
해설 (0)
 //Suppose you have int and you wan to convert it to Long
 int i=78;
 //convert to Long
 Long l=Long.valueOf(i)
해설 (0)

난 이미 상당한 문제가 있습니다. 싶어서.

thisBill.IntervalCount = jPaidCountSpinner.getValue();

여기서 인터발카운트 길고 긴 반환되기를 설정되었습니다 및 제스파이너 있다. 결국 이 기능을 쓸 수 있었습니다.

    public static final Long getLong(Object obj) throws IllegalArgumentException {
    Long rv;

    if((obj.getClass() == Integer.class) || (obj.getClass() == Long.class) || (obj.getClass() == Double.class)) {
        rv = Long.parseLong(obj.toString());
    }
    else if((obj.getClass() == int.class) || (obj.getClass() == long.class) || (obj.getClass() == double.class)) {
        rv = (Long) obj;
    }
    else if(obj.getClass() == String.class) {
        rv = Long.parseLong(obj.toString());
    }
    else {
        throw new IllegalArgumentException("getLong: type " + obj.getClass() + " = \"" + obj.toString() + "\" unaccounted for");
    }

    return rv;
}

하지만 이렇게 할 것을 우려한 때문으로 보인다. 아무리 간단한 캐스팅, 기타 솔루션 협력했습니다 for me. 답답한 것은 매우.

해설 (2)

대로 (long) ',' 롱스발우에로프 방법 밖에 없는 '긴' 에서 '캐스팅 될 경우 int' 를 사용하여 간접적으로 수행됨 '롱스발우에로프 (린트발루)'.

이는 더 선택해제합니다 방법으로

Integer.valueOf(intValue).longValue()
해설 (1)