私はこれを、トップレベルの楽しみとコンパニオンオブジェクトの静的な楽しみの両方として定義することによってこれを達成しようとしましたが、同じ結果が得られます。私は生成されたメソッドを見ることができますが、何もありませんnewInstance(mouse: Mouse?)
これはJavaからどのように呼び出されるのかについて私は誤解していますか?AndroidのFragment.newInstance()パターンでKotlinの@JvmOverloadsを使用する
// MyFragment.kt
@JvmOverloads
fun newInstance(bird: Bird? = null, bee: Bee? = null, cat: Int? = -1, mouse: Mouse? = null) : MyFragment {
//Put params in Bundle, put bundle in fragment...
return MyFragment()
}
// MyActivity.java
MyFragment fragment = MyFragmentKt.newInstance(bird, bee, cat); // compiles
MyFragment fragment = MyFragmentKt.newInstance(mouse); // does not compile
@tynnを参照してください。それから、私のオプションは 'newInstance(mouse:Mouse?)'を手動でオーバーロードすることです**または** MyFragmentKt.newInstance(null、null、null、mouse);で使用します – es0329
私はそれが最良のオプションだと思います得た。 – tynn