Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- 파이썬
- 자바네트워크
- 자바암호
- 웹 크롤링
- oracle
- 인프라
- python
- 역학
- GPT-4's answer
- 고전역학
- write by GPT-4
- 소프트웨어공학
- Database
- 코틀린
- JVM
- 유닉스
- write by chatGPT
- 리눅스
- chatGPT's answer
- 시스템
- NIO
- spring integration
- spring data jpa
- 자바
- flet
- jpa
- kotlin
- android
- 데이터베이스
Archives
- Today
- Total
Akashic Records
제네릭 본문
728x90
제네릭은 타입을 파라미터로 가지는 클래스와 인터페이스를 정의하는 프로그래밍 기법입니다. 제네릭을 사용하면 다양한 타입의 객체를 사용할 수 있으며, 컴파일 시간에 타입 안정성을 제공하므로 코드의 재사용성과 유연성을 높입니다.
- 제네릭 클래스
제네릭 클래스는 하나 이상의 타입 파라미터를 가질 수 있습니다. 이 파라미터는 클래스 내에서 변수나 함수의 타입으로 사용됩니다.
예제:
class Box<T>(val content: T)
val intBox = Box(1)
val stringBox = Box("Hello")
println(intBox.content) // 출력: 1
println(stringBox.content) // 출력: Hello
이 예제에서 Box
클래스는 T
타입 파라미터를 가집니다. Box(1)
로 Box<Int>
인스턴스를 생성하고 Box("Hello")
로 Box<String>
인스턴스를 생성할 수 있습니다.
- 제네릭 함수
제네릭 함수는 함수 선언에 타입 파라미터를 포함합니다. 이 함수는 호출 시에 다양한 타입으로 사용될 수 있습니다.
예제:
fun <T> printContent(box: Box<T>) {
println(box.content)
}
printContent(intBox) // 출력: 1
printContent(stringBox) // 출력: Hello
이 예제에서 printContent
함수는 Box<T>
타입 파라미터를 가집니다. printContent(intBox)
나 printContent(stringBox)
로 다양한 타입의 Box
인스턴스를 인자로 넘길 수 있습니다.
제네릭은 코드의 재사용성을 높이고 타입 안정성을 제공하는데 중요한 역할을 합니다. 제네릭을 사용하면 한 코드가 다양한 타입에 대응할 수 있으므로 개발 과정에서 훨씬 더 유연하고 안정적인 프로그램을 만들 수 있습니다.
728x90
Comments