instanceof vs Class.isAssignableFrom

2616 단어 JavaJava

참고
https://hashcode.co.kr/questions/300/instanceof%EB%9E%91-classisassignablefrom%EC%9D%98-%EC%B0%A8%EC%9D%B4%EA%B0%80-%EB%AD%90%EC%A3%A0

instanceof

  • 컴파일 시 클래스를 확인하기 위해 사용
  • 특정 Object가 어떤 클래스, 인터페이스를 상속/구현했는지 체크함 = 인스턴스 객체에 대한 검사를 진행함.
  • 성능은 instanceof가 빠르다.
public class Latte extends Coffee {
}

Latte obj = new Latte();
if (obj instanceof Latte) {
	// true
}

Class.isAssignableFrom()

  • 런타임 시점에 불특정한 클래스에 대한 타입을 동적으로 확인하기 위해 사용
  • 특정 Class가 어떤 클래스/인터페이스를 상속/구현했는지 체크함
public class Latte extends Coffee {
}

if (Latte.class.isAssignableFrom(Coffe.class) {
	// true
}

좋은 웹페이지 즐겨찾기