Kotlinのデフォルト引数があるメソッドをJavaから呼び出そうとするとエラーがでるのでその対処法です。
結論
@JvmOverloads
アノテーションをつける
サンプルコード
Kotlin側
class Foo {
@JvmOverloads fun bar(str: String = "A"): String {
return str
}
}
Java側
Foo foo = new Foo();
foo.bar(); // "A"
foo.bar("B"); // "B"
@JvmOverloads
アノテーションつけなかったときのエラー
java.lang.IllegalArgumentException: Parameter specified as non-null contains null