Programming/Java

타입 확인

seandoesdev 2023. 8. 4. 04:02

1. instanceof 연산자 활용

자주 사용하는 방식으로 왼쪽의 객체가 오른쪽에 있는 클래스 또는 인터페이스의 인스턴스인지 확인하는 데 사용한다.

String str = new String("Hi");

if (str instanceof String){
	System.out.println("Nice to meet you.");

} else {
	System.out.println("oh, Sorry. I've got to go now.");
}

 

2. getClass() 메소드 사용

getClass() 메소드를 통해 사용하는 것은 정확한 클래스를 반환하므로 서브클래스와 슈퍼클래스를 구별할 수 있다.

String str = new String("Hi");

if (str.getClass() == String.class){
	System.out.println("Nice to meet you.");
} else{
	System.out.println("oh, Sorry. I've got to go now.");
}

 

3. Type 사용

Type이라는 인터페이스를 통해 런타임에 객체의 타입 정보를 얻을 수 있다. ‘Type’은 제네릭 타입을 위한 슈퍼 인터페이스로, 실제 타입, 매개변수화된 타입, 배열 타입, 타입 변수 또는 원시 타입을 나타낼 수 있다.

public void checkType(Type type){
	if (type instanceof Class<?>){
		System.out.println("Class Type");
	} else if (type instanceof ParameterizedType) {
		System.out.println("Parameterized Type");
	} else {
		System.out.println("Unknown type");
	}
}

Type 타입의 매개 변수를 받아 해당 타입이 Class 인스턴스인지 매개변수화된 타입인지 확인한다.

 

Reference

참고사이트