kotlin - Kotlin,如果函数中使用了默认参数,我可以得到吗?
问题描述
我想知道是否使用了默认参数。就像是:
private fun createVideo(path: Url = DEFAULT_PATH, width: Int = 0, height: Int = 0) {
if (path is default value) {
// it means caller didn't set path
return AVideo()
else {
return BVideo()
}
}
我正在使用效率低下的函数重载来处理这个问题。
编辑:这是我的真实代码
private fun createMediaItemMock(mediaType: Int,
width: Int = WIDTH_2K,
height: Int = HEIGHT_2K,
trimmingDataCan: Boolean) = mock<PickerMediaItem> {
on { it.mediaType } doReturn mediaType
it.width = width
it.height = height
it.trimmingData = mock {
on { can() } doReturn trimmingDataCan
}
}
private fun createMediaItemMock(mediaType: Int,
width: Int = WIDTH_2K,
height: Int = HEIGHT_2K) = mock<PickerMediaItem> {
on { it.mediaType } doReturn mediaType
it.width = width
it.height = height
}
解决方案
你可以只检查是否path.equals(DEFAULT_PATH)
. 另外,如果您是return AVideo()
或return BVideo()
private fun createVideo(path: Url = DEFAULT_PATH, width: Int = 0, height: Int = 0): ReturnVideoType {
if (path is default value) {
// it means caller didn't set path
return AVideo()
else {
return BVideo()
}
}
推荐阅读
- javascript - 在 vue js 中加载组件之前渲染图像
- apache-nifi - 如何使用 Nifi JoltJSONTransform 规范?
- html - Angular 4 - 单击按钮时要附加文本区域以动态查看每个按钮单击
- database - 在oracle中将一行拆分为多个
- javascript - 如何设置通过类更改为“自动”-javascript 的 DIV 的“高度”属性?
- javascript - AngularJS我如何过滤嵌套对象
- c++ - 在地图中使用无符号字符向量
- c# - c#正则表达式,我怎样才能逃脱[[和]]
- java - for循环中的增量给出不同的答案
- android - recyclerview 交错网格布局管理器加载更多进度条