나는 여기와 구글에서 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'를 사용할 수 없습니다.
어떤가.
int myInt = 88;
// 컴파일하십시오 않습니다.
Long myLong = myInt;
Int 는 컴파일 및 // 캐스트 (cast) 는 전혀 없는 최고의 null 이 아닌 물으리라. . 물론 너회의 览侩 荤례 길고 가능한 NULL 값을 할 수 있습니다. Int 는 입력 및 걷고, 또는 기타 신앙이니라 해결할 수 있는 유일한 방법, 난 이 외곽진입 제안하세요 수정할 수 있습니다.
long myLong = myInt;
가장 효율적인 방법으로 하면 소스 컴파일, //, 가치, 그리고 널일 결코 분명히 있다.
Long myLong = (long) myInt;
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
}
난 이미 상당한 문제가 있습니다. 싶어서.
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. 답답한 것은 매우.