자바에는 디폴트 파라미터 값이라는 개념이 없다.
그러므로 오버로딩한 메소드가 많아지는 경우가 있다.
 
코틀린에서는 적용된 디폴트파라미터 예제

fun foo(){
param1:Int,
param2:String = ""  //default 값이 지정된 파라미터
}

위함수를 호출하는경우
foo(123) //디폴트파라미터는 생략가능
foo(123, “test”) // 디폴트값이 있으나 test로 덮어씌움
foo(param2=””, param1= 123) // 파라미터 명을 적는 경우 순서를 바꿀수 있다.
 
코틀린 함수를 자바에서 호출할때는 그 코틀린 함수가 디폴트 파라미터 값을 제공하더라도 모든 인자를 명시해야 한다.
자바에서 코틀린 함수를 자주 호출해야 한다면 자바 쪽에서 좀 더 편하게 코틀린 함수를 호출하고 싶을 것이다.
그럴때 @ JvmOverloads 애노테이션을 함수에 추가 할 수 있다.
@ JvmOverloads을 함수에 추가하면 코틀린 컴파일러가 자동으로 맨 마지막 파라미터로부터 파라미터를 하나씩 생략한 오버로딩한 자바 메소드를 추가해준다.

카테고리: Kotlin

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.