라벨이 스마트캐스팅인 게시물 표시

Kotlin Any Type

Any Type Kotlin은 모든 클래스가 직접 혹은 간접적으로 Any 클래스를 상속받는다. 따라서 모든 객체의 주소 값은 Any 타입 참조 변수에 담을 수 있다. Any 타입과 is 연산자를 활용하여 다양한 타입의 객체에 대응할 수 있는 코드를 만들 수 있다. Any 코틀린에서 any는 모든 타입의 상위 타입(슈퍼 타입)이며, 모든 클래스의 공통 조상입니다. 즉, 모든 코틀린 클래스의 인스턴스를 저장할 수 있는 공통의 타입을 말합니다. Any는 자바의 Object와 유사한 역할을 합니다. 코틀린의 클래스들은 기본적으로 Any 클래스를 상속받기 때문에, 모든 클래스의 인스턴스는 Any 타입으로 취급될 수 있습니다. fun main () { val obj1:SubClass1 = SubClass1() val obj2:SubClass2 = SubClass2() anyMethod (obj1) anyMethod (obj2) anyMethod ( 100 ) anyMethod ( " 문자열 " ) } open class SuperClass1 interface Inter1 class SubClass1: SuperClass1() { fun subMethod1 () { println ( "SubClass1 의 subMethod1 입니다 " ) } } class SubClass2: Inter1 { fun subMethod2 () { println ( "SubClass2 의 subMethod1 입니다 " ) } } fun anyMethod (obj : Any){ println (obj. javaClass ) if ( obj is SubClass1 ) { obj .subMethod1() } else if ( obj is SubClass2 ) { obj .subMethod