Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查对象中的一个字段在kotlin中是否为空_Kotlin - Fatal编程技术网

检查对象中的一个字段在kotlin中是否为空

检查对象中的一个字段在kotlin中是否为空,kotlin,Kotlin,我有一个包含许多字段的对象。例如: 豪斯 -windows -门 -管道 等等 我正在寻找一种优雅的方法来检查其中一个元素是否为null。 如果(windows!=null | | | doors!=null | | pipes…)您可以使用 fun main(args:Array){ var myObj=myObj() myObj.house=“house” myObj.windows=“windows” 打印(列表(myObj.house、myObj.windows、myObj.doors.

我有一个包含许多字段的对象。例如:

豪斯
-windows
-门
-管道
等等

我正在寻找一种优雅的方法来检查其中一个元素是否为null。 如果(windows!=null | | | doors!=null | | pipes…)

您可以使用

fun main(args:Array){
var myObj=myObj()
myObj.house=“house”
myObj.windows=“windows”
打印(列表(myObj.house、myObj.windows、myObj.doors.filterNotNull());
//印刷品:[房子,窗户]
}
MyObj类{
变量:字符串?=null
变量窗口:字符串?=null
变量门:Int?=null
}
您可以使用

fun main(args:Array){
var myObj=myObj()
myObj.house=“house”
myObj.windows=“windows”
打印(列表(myObj.house、myObj.windows、myObj.doors.filterNotNull());
//印刷品:[房子,窗户]
}
MyObj类{
变量:字符串?=null
变量窗口:字符串?=null
变量门:Int?=null
}
您可以使用,例如

如果您不喜欢,也可以使用,例如:

对于您目前的状况,
任何
-变体可能是最好的<如果您希望确保所有条目都或没有条目符合特定条件,例如
all{it!=null}
none{it==null}
,则代码>全部和
获胜

或者,如果上述各项都不适合您,请提供您自己的功能,例如:

fun <T> anyNotNull(vararg elements : T) = elements.any { it != null }
你可以用

如果您不喜欢,也可以使用,例如:

对于您目前的状况,
任何
-变体可能是最好的<如果您希望确保所有条目都或没有条目符合特定条件,例如
all{it!=null}
none{it==null}
,则代码>全部和
获胜

或者,如果上述各项都不适合您,请提供您自己的功能,例如:

fun <T> anyNotNull(vararg elements : T) = elements.any { it != null }

假设您不想使用反射,您可以构建一个
列表
,并在其上使用:


假设您不想使用反射,您可以构建一个
列表
,并在其上使用:

如果(x!=null)x else y,则可以使用作为
缩写的运算符:

if( null != windows ?: doors ?: pipes )
这将遍历每个字段并返回第一个非空字段,如果链中的最后一个元素为空,则返回
null

您应该尽量避免为这种简单的比较分配整个列表/数组。

如果(x!=null)x else y
,您可以使用操作符作为
的缩写:

if( null != windows ?: doors ?: pipes )
这将遍历每个字段并返回第一个非空字段,如果链中的最后一个元素为空,则返回
null


您应该尽量避免为这种简单的比较分配整个列表/数组。

val houseArray=!列表(“窗”、“门”、“管道”).isNullOrEmpty()

val houseArray=!listOf(“窗”、“门”、“管道”).isNullOrEmpty()

为什么只有在至少有一个非null值时才要输入条件?之后要做什么?为什么只有在至少有一个非空值时才要输入条件?之后你要做什么?请在发布代码时提供解释,并在代码的开头和结尾使用``格式化代码(这些``应该在它们自己的行上)。请在发布代码时提供解释,并在代码的开头和结尾使用``格式化代码(这些``应该在它们自己的行上)
if (anyNotNull(windows, doors, pipes)) {
val anyElementNull = listOf(window, doors, pipes).any { it != null }
if( null != windows ?: doors ?: pipes )