We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
@JvmOverloads
kotlin 함수에 default parameter 가 있는 경우 Java 에서 사용이 용이하도록 기본 인자들이 overload 된 메서드들를 생성한다.
예를들어 아래와 같은 2개의 default parameter 를 지닌 kotlin 함수가 있다고 하자.
class MyElasticClient { fun check(query: String, async: Boolean = false, ignoreException: Boolean = false) { // 코드 생략 } }
그러나 Java 에선 기본 인자 개념이 없기 때문에 모든 인자를 전부 입력해야 한다.
public static void main(String[] args) { MyElasticClient client = new MyElasticClient(); client.check("query"); // compile-error client.check("query", false); // compile-error client.check("query", false, false); // ok }
이 때 kotlin 함수에 @JvmOverloads 를 붙이면 자동으로 default methods 를 overloads 한 메서드들을 생성해준다.
class MyElasticClient { @JvmOverloads fun check(query: String, async: Boolean = false, ignoreException: Boolean = false) { // 코드 생략 } }
이 후 Java 에서도 원하는대로 인자를 생략해서 사용할 수 있다.
public static void main(String[] args) { MyElasticClient client = new MyElasticClient(); client.check("query"); // ok client.check("query", false); // ok client.check("query", false, false); // ok }
The text was updated successfully, but these errors were encountered:
occidere
No branches or pull requests
@JvmOverloads
kotlin 함수에 default parameter 가 있는 경우 Java 에서 사용이 용이하도록 기본 인자들이 overload 된 메서드들를 생성한다.
Example
예를들어 아래와 같은 2개의 default parameter 를 지닌 kotlin 함수가 있다고 하자.
그러나 Java 에선 기본 인자 개념이 없기 때문에 모든 인자를 전부 입력해야 한다.
이 때 kotlin 함수에
@JvmOverloads
를 붙이면 자동으로 default methods 를 overloads 한 메서드들을 생성해준다.이 후 Java 에서도 원하는대로 인자를 생략해서 사용할 수 있다.
참고
The text was updated successfully, but these errors were encountered: