java.lang.IncompatibleClassChangeError:예외 원인 및 해결 방법
오류 시나리오 1
나는 프로젝트에서 이 오보의 실례를 만났다.이 오류는 일부 클래스 정의가 호환되지 않는 클래스 변경이 발생할 때 발생합니다. 현재 실행 방법에 의존하는 클래스 정의가 변경되었습니다.
public class B extends A{
}
public class A{
//
public transient final Logger log = LoggerFactory.getLogger(getClass);
//
public static final Logger log = LoggerFactory.getLogger(A.Class);
}
이런 상황에서 자바가 나타날 수도 있어요.lang.IncompatibleClassChangeError 예외getClass () 는 대상 실례의 방법으로 대상 실례만 이 방법이 있고 구체적인 클래스는 없습니다.클래스의 Class 클래스 인스턴스는 통과입니다.class가 얻은 것은 분명히 클래스가 없습니다.getClass () 방법입니다.가장 주요한 원인은:**Class.forName () 과 getClass () 는 실행할 때 불러옵니다.Class.class는 컴파일러가 불러옵니다. 즉.class는 정적 불러오기입니다.getClass()는 동적 로드입니다.**코드를 변경한 후에 자바 가상기는 컴파일 시기와 실행 시기에 얻은 대상이 같지 않다고 생각할 것이다.
오류 시나리오 2
1: 프로젝트에서 가져온jar 패키지 충돌;또는 같은jar백이 두 개의 다른 버전 번호에 의존합니다 2:jar백의 위치가 마벤트에서의 순서에 문제가 있어 의존을 찾을 수 없습니다
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-quartz</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.shiro-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.4</version>
</dependency>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.