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