JAVA 강제 형식 변환 자주 발생 하 는 오류

990 단어 JAVA
이 글 은 JAVA 강제 유형 전환 이 자주 겪 는 문제 로 주로 2 가지 상황 으로 나 뉜 다.
1.두 가지 유형 이 상속 관계 가 없 을 때:
package Test;

public class Test {
	public static void main(String []args) {
		C c = new C();
		B b = (B) c;
	}
}

class B extends A {
	public void locate() {
		System.out.println("class B");
	}
}

class C  {
	public void locate() {
		System.out.println("class C");
	}
}
이때(B)c 이 줄 코드 아래 에 오류 알림 이 나타 납 니 다.
Cannot cast from C to B

2.초 클래스 가 하위 클래스 로 강제 전 환 될 때:
package Test;

public class Test {
	public static void main(String []args) {
		A a = new A();
		B b = (B) a;
	}
}

class A {
	public void locate() {
		System.out.println("class A");
	}
}

class B extends A {
	public void locate() {
		System.out.println("class B");
	}
}
이때 코드 에 오류 알림 이 나타 나 지 않 지만 실행 할 때 이상 을 던 집 니 다.
4.567913.정확 한 해결 방법:강제 유형 전환 을 할 때 instanceof 를 사용 하여 판단 한다.
java.lang.ClassCastException

좋은 웹페이지 즐겨찾기