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
- SQL
- 게시판
- 답글
- FIle
- sub query
- Android
- webpack
- 쿠키
- 상속
- 버전일치
- 스프링
- git
- 왕초보
- Spring
- degit
- java#왕초보
- 안드로이드
- kotlin
- 미니게임
- Spinner
- React
- java
- 시큐어코딩
- 코틀린
- parcel
- snowpack
- 스타일보험
- 숫자
- 함수
- 오버라이드
Archives
- Today
- Total
YSHUSH
Generic 본문
Generic은 템플릿, 형태라는 뜻
<T>
자바에서는
class Box<T>{ // 자료형 변수
private T value;
Box(T value){
this.value = value;
}
public T getValue(){
return value;
}
}
자료형 변수로 이렇게 사용했었다.
코틀린에서는
class Box<T>(var value: T)
이렇게만 쓰면 끝!
함수호출부
fun main(args: Array<String>) {
val box:Box<Int> = Box<Int>(123)
println(box.value)
val sBox:Box<String> = Box<String>("my world")
println(sBox.value)
val iBox = Box(234)
println(iBox.value)
}
함수로 이용
fun<T> add(a:T, b:T, op:(T, T) -> T): T{
return op(a, b)
}
함수호출부
fun main(args: Array<String>) {
var result = add(3, 4, { a, b -> a + b})
// add(3, 4) { a, b -> a + b }
println(result)
}
또 다른 사용
class MyClass<T1, T2>(n1:T1, n2:T2){
var num1 = n1
var num2 = n2
// fun func(){
// return num1 + num2
// } -> 연산은 안됨
}
함수호출부
fun main(args: Array<String>) {
val cal:MyClass<Int, Double> = MyClass<Int, Double>(34, 123.456)
println(cal.num1)
println(cal.num2)
// fun func(){
// return num1 + num2
// } -> 안됨
println(cal.num1 + cal.num2)
}