tl;dr Kotlinコードで定義したデフォルト値を使用した関数,コンストラクタをJavaコードで使う事を想定する場合には@JvmOverloadsアノテーションをつける @JvmOverloadsアノテーション Kotlinの関数やコンストラクタの宣言で、以下のようにデフォルト値を使うと class MyClass { fun myFunc(a: String = "", b: Int = 1, c: Boolean = true) {} } JavaからはMyClass#myFunc(String, int, boolean)のみ定義されているように見えます 変数b,cにはデフォルト値を使いつつMyClass#myFunc(String)の呼び出しを行いたいという場面では@JvmOverloadsアノテーションを使うことができます @JvmOverloads fun myFunc(a