我创建了一个扩展DialogFragment():
class AlertDialogFragment(context: Context,
val positiveButtonText: String,
val positiveButtonListener: DialogInterface.OnClickListener,
val negativeButtonText: String,
val negativeButtonListener: DialogInterface.OnClickListener,
neutralButtonText: String,
neutralButtonListener: DialogInterface.OnClickListener
) : DialogFragment() {
Run Code Online (Sandbox Code Playgroud)
但是我希望最后两个参数是可选的。
我怎样才能做到这一点?
我无法设置,neutralButtonListener: DialogInterface.OnClickListener = null因为DialogInterface.OnClickListener是非空类型。
救援的默认参数。
class AlertDialogFragment(
context: Context,
val positiveButtonText: String,
val positiveButtonListener: DialogInterface.OnClickListener,
val negativeButtonText: String,
val negativeButtonListener: DialogInterface.OnClickListener,
neutralButtonText: String = "",
neutralButtonListener: DialogInterface.OnClickListener = OnClickListener {}
) : DialogFragment()
Run Code Online (Sandbox Code Playgroud)
基本上,Kotlin 会为每种可能的参数组合生成多种方法。
如果@JvmOverloard在构造函数中包含注释以在 Java 中允许相同的事情也可能更好。
看一下这个
class AlertDialogFragment(context: Context, val positiveButtonText: String, val positiveButtonListener: DialogInterface.OnClickListener,
val negativeButtonText: String, val negativeButtonListener: DialogInterface.OnClickListener, neutralButtonText: String = "", neutralButtonListener: DialogInterface.OnClickListener?=null) : DialogFragment() { }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13463 次 |
| 最近记录: |