1.casting의 사용
위와 같은 casting연산을 거치는 것은 프로그램의 속도를 저하 시킨다
따라서 이에 대체하기 위해 나온것이 Generic
제네릭은 클래스나 함수를 선언할때 고정적인 자료형 대신 실제 자료형으로 대체되는 타입패러미터 -> <T>
를 받아 사용한다
이 타입패러미터에 특정자료형이 할당되면 예를 들어 Int 자료형이 할당되면 제너릭을 사용하는 모든 코드는 할당된
자료형으로 대체되어 컴파일 된다 따라서 캐스팅 연산없이 자료형을 그대로 사용할 수 있게 된다
2. 제너릭 사용법
타입패러미터의 이름은 클래스 이름과 규칙이 같지만 관례적으로 T를 사용 --> <T>
제너릭을 특정한 슈퍼클래스를 상속받은 클래스타입으로만 제한하려면 <T : 슈퍼클래스이름>
(1). 함수의 경우
- 아래 예제의 회색부분과 같이 함수를 선언하고
- 파라미터로 정수를 주어 함수를 실행하면
- 선언부가 제너럴로 인해 함수를 실행할때 들어온 파라미터가 정수형임을 자동으로 추론하여 컴파일한다
(2). 클래스의 경우
- 클래스의 파라미터로 받을 자료형을 제너릭으로 선언해주면
- 인스턴스를 만들때 타입파라미터를 수동으로 지정해 줄 수 있고
(2)-1). 클래스의 경우 중 생성자에 제너릭이 사용된경우
- 인스턴스를 만들때 타입파라미터를 수동지정할 필요 없이 바로 원하는 자료형을 넣어주게되면
- 선언부가 자동으로 추론하여 컴파일한다
3.제네릭의 사용
(1). 클래스에서의 제네릭 사용
- 1.의 casting을 사용한 부분을 제너릭을 사용하여 바꾸어 보자
(2). 함수에서의 제네릭 사용
'Java and Android > Android Kotlin' 카테고리의 다른 글
Android Kotlin - 함수의 argument를 다루는 방법 (0) | 2021.01.02 |
---|---|
Android Kotlin - 문자열 다루기(자주쓰이는 함수) (0) | 2021.01.02 |
Android Kotlin - 다형성(polymorphysm)_casting (0) | 2021.01.02 |
Android Kotlin - Observer Pattern (0) | 2020.12.29 |
Android Kotlin - Label (0) | 2020.12.29 |