본문 바로가기

Java and Android/Android Kotlin

Android Kotlin - casting의 사용, Generic

1.casting의 사용

 

 

위와 같은 casting연산을 거치는 것은 프로그램의 속도를 저하 시킨다

따라서 이에 대체하기 위해 나온것이 Generic

제네릭은 클래스나 함수를 선언할때 고정적인 자료형 대신 실제 자료형으로 대체되는 타입패러미터 -> <T>

를 받아 사용한다

 

 

이 타입패러미터에 특정자료형이 할당되면 예를 들어 Int 자료형이 할당되면 제너릭을 사용하는 모든 코드는 할당된 

자료형으로 대체되어 컴파일 된다 따라서 캐스팅 연산없이 자료형을 그대로 사용할 수 있게 된다

 

 

 

 

2. 제너릭 사용법

 

타입패러미터의 이름은 클래스 이름과 규칙이 같지만 관례적으로 T를 사용 --> <T>

제너릭을 특정한 슈퍼클래스를 상속받은 클래스타입으로만 제한하려면 <T : 슈퍼클래스이름>

 

(1). 함수의 경우 

   - 아래 예제의 회색부분과 같이 함수를 선언하고

   - 파라미터로 정수를 주어 함수를 실행하면

   - 선언부가 제너럴로 인해 함수를 실행할때 들어온 파라미터가 정수형임을 자동으로 추론하여 컴파일한다

 

 

 

(2). 클래스의 경우

  - 클래스의 파라미터로 받을 자료형을 제너릭으로 선언해주면

  - 인스턴스를 만들때 타입파라미터를 수동으로 지정해 줄 수 있고

 

 

 

(2)-1). 클래스의 경우 중 생성자에 제너릭이 사용된경우

  - 인스턴스를 만들때 타입파라미터를 수동지정할 필요 없이 바로 원하는 자료형을 넣어주게되면

  - 선언부가 자동으로 추론하여 컴파일한다

 

 

 

3.제네릭의 사용

 

(1). 클래스에서의 제네릭 사용 

 - 1.의 casting을 사용한 부분을 제너릭을 사용하여 바꾸어 보자

 

 

 

(2). 함수에서의 제네릭 사용