라벨이 Kotlin 형변환인 게시물 표시

Kotlin as 연산자

이미지
Kotlin as 연산자 객체를 지정된 클래스 타입으로 변환하는 연산자이다. 참조 변수 as 클래스 타입 만약 객체가 지정된 클래스타입과 관계가 없을 경우 오류가 발생한다. 형 변환이 발생한 참조 변수는 변환된 타입을 유지한다. as 연산자 여기서 변수는 형변환을 수행하려는 변수이고, 타입은 변수를 변환하려는 타입입니다. as 연산자를 사용하여 변수를 다른 타입으로 변환하면, 변수는 해당 타입으로 강제로 변환됩니다. 명시적 형변환 Kotlin에서 as 연산자는 명시적으로 변수의 타입을 변환하기 위해 사용됩니다. as 연산자를 사용하여 변수를 다른 타입으로 변환할 수 있습니다. 이는 명시적 형변환이라고도 합니다. fun main () { val obj1:SubClass1 = SubClass1() val super1:SuperClass1 = obj1 // SubClass1 으로 명시적 형변환을 하지 않으면 subMethod1 을 사용할 수 없다 . // super1 as SubClass1 // 주석을 해제 하면 Error가 해결된다. super1.subMethod1() // Error } open class SuperClass1 interface Inter1 class SubClass1 : SuperClass1() { fun subMethod1 () { println ( "subMethod1" ) } } class SubClass2 : Inter1 Kotlin: Unresolved reference: subMethod1 fun main () { val obj1:SubClass1 = SubClass1() val super1:SuperClass1 = obj1 super1 as Inter1 // Runtime Error } open class SuperClass1 interface Inter1 class SubClass1 : SuperClass1() { fu

Kotlin 형변환

Kotlin 형변환 변수에 담긴 값이나 객체를 다른 형태로 변환하는 것을 의미한다. Kotlin 은 모든 값을 객체로 관리하기 떄문에, Kotlin 에서의 형변환은 다른 클래스 타입의 객체로 변환하는것을 의미한다. 스마트 캐스팅 Java에서 자동형변환이라고 부르는 개념이다. 특정 조건을 만족하면 자동으로 형변환이 발생하는 개념이다. 스마트 캐스팅 기능 덕분에 형변환에 대해 개발자가 크게 신경을 쓰지 않아도 된다. 형 변환은 객체의 클래스 타입이 아닌 객체의 주소 값을 가지고 있는 참조 변수의 타입이 변경되는 것이다. 객체 타입 변환 객체의 타입변환은 상속관계나 구현한 인터페이스 타입에 해당한다. 부모클래스의 타입으로 형변환 fun main () { val obj1:SubClass1 = SubClass1() val obj2:SubClass2 = SubClass2() // 부모클래스 타입 참조 변수에 담는다 . val super1:SuperClass1 = obj1 } open class SuperClass1 interface Inter1 class SubClass1 : SuperClass1() class SubClass2 : Inter1\ 구현한 인터페이스 타입으로 형변환 fun main () { val obj1:SubClass1 = SubClass1() val obj2:SubClass2 = SubClass2() // 부모클래스 타입 참조 변수에 담는다 . val inter1:Inter1 = obj2 } open class SuperClass1 interface Inter1 class SubClass1 : SuperClass1() class SubClass2 : Inter1 구현한 인터페이스 타입으로 형변환 fun main () { val obj1:SubClass1 = SubClass1() val obj2:SubClass2 = SubClass2() val super1:Su