자바 수학bigInteger를 java.lang에 캐스팅할 수 없습니다.정수
저는 다음과 같은 예외를 받고 있습니다.
원인:
자바.java.javaClassCastException: java.math입니다.bigInteger를 java.lang에 캐스팅할 수 없습니다.정수
다음과 같은 코드로
List queryResult = query.list();
for (Iterator<Object[]> it = queryResult.iterator(); it.hasNext();) {
Object[] result = it.next();
Integer childId = (Integer) result[0];
Integer grandChildCount = (Integer) result[1];
CompanyNode childNode = childNodes.get(childId);
childNode.setHasChildren(grandChildCount != 0);
childNode.setIsLeaf(grandChildCount == 0);
}
이 선에서
Integer grandChildCount = (Integer) result[1];
누구 아는 사람 있어요?
사용할 수 있는 항목:
Integer grandChildCount = ((BigInteger) result[1]).intValue();
아니면, 아마도.Number
두 가지 모두를 포함하여Integer
그리고.BigInteger
가치.
자바독에서 보듯,BigInteger
의 하위 클래스가 아닙니다.Integer
:
java.lang.Object java.lang.Object
java.lang.Number java.lang.Number
java.math.BigInteger java.lang.Integer
그래서 캐스팅이BigInteger
로.Integer
불가능합니다.
자바 원시 요소의 주조는 약간의 변환을 할 것입니다(예: 주조와 같은).double
로.int
) 유형의 주조는 클래스를 변환하지 않습니다.
사용해 볼 수 있습니다.
((BigDecimal) volume).intValue();
사용합니다java.math.BigDecimal
로 변환.int
(선택 유형).
그것은 나에게 효과가 있습니다.
java.lang.Integer
의 슈퍼 클래스가 아닙니다.BigInteger
.둘다요.BigInteger
그리고.Integer
에서 물려받다.java.lang.Number
그래서 당신은 캐스팅할 수 있습니다.java.lang.Number
.
Java 문서를 참조하십시오. http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Number.html
데이터베이스의 열은 다음과 같습니다.DECIMAL
당신은 그것을 처리해야 합니다.BigInteger
조금도 아닌Integer
그렇지 않으면 숫자를 잃어버리는 것입니다.또는 열을 다음으로 변경합니다.int
.
언급URL : https://stackoverflow.com/questions/9510982/java-math-biginteger-cannot-be-cast-to-java-lang-integer
'programing' 카테고리의 다른 글
Ajax/jquery 기술로 페이지 내용을 미리 로드할 수 있습니까? (0) | 2023.09.04 |
---|---|
AJAX 호출 시 다운로드 전에 window.on이 호출되지 않도록 할 수 있습니까? (0) | 2023.09.04 |
PowerShell의 유니언과 교차로? (0) | 2023.09.04 |
PL/SQL에서 .exe를 어떻게 호출합니까? (0) | 2023.09.04 |
도커 컨테이너 상태 저장 방법 (0) | 2023.09.04 |