草庐IT

可空性

全部标签

c# - Convert.ChangeType() 在可空类型上失败

我想将字符串转换为对象属性值,我将其名称作为字符串。我正在尝试这样做:stringmodelProperty="SomePropertyName";stringvalue="SomeValue";varproperty=entity.GetType().GetProperty(modelProperty);if(property!=null){property.SetValue(entity,Convert.ChangeType(value,property.PropertyType),null);}问题是当属性类型为可空类型时,这将失败并抛出无效转换异常。这不是无法转换值的情况-如果

python - 为什么 Python 中没有显式的空性检查(例如 `is Empty` )

TheZenofPython说“显式优于隐式”。然而,检查空虚的“pythonic”方法是使用隐式bool值:ifnotsome_sequence:some_sequence.fill_sequence()如果some_sequence是一个空序列,但如果它是None或0也是如此。与理论上的显式空性检查比较:ifsome_sequenceisEmpty:some_sequence.fill_sequence()由于选择了一些不利的变量名,检查空的隐式bool值变得更加困惑:ifsaved:mess_up()比较:ifsavedisnotEmpty:mess_up()另见:“Python

python - 为什么 Python 中没有显式的空性检查(例如 `is Empty` )

TheZenofPython说“显式优于隐式”。然而,检查空虚的“pythonic”方法是使用隐式bool值:ifnotsome_sequence:some_sequence.fill_sequence()如果some_sequence是一个空序列,但如果它是None或0也是如此。与理论上的显式空性检查比较:ifsome_sequenceisEmpty:some_sequence.fill_sequence()由于选择了一些不利的变量名,检查空的隐式bool值变得更加困惑:ifsaved:mess_up()比较:ifsavedisnotEmpty:mess_up()另见:“Python

php - 当为可空函数参数指定 `null` 时如何使用默认值?

在PHP7.1中调用以下函数时:privatefunctiondoStuff(?int$limit=999){}语法如下:doStuff(null);$limit的值变为null。所以我猜可以说$limit的值被显式设置为null。有什么办法可以克服这个问题吗?IE。当遇到空值(即缺少值)时使用默认值,无论是隐式还是显式? 最佳答案 没有PHP没有“如果为null则回退到默认值”选项。你应该这样做:privatefunctiondostuff(?int$limit=null){//pre-inttypehintingIwouldha

android - 是否可以强制 LiveData 值的不可空性?

有什么方法可以强制LiveData值的不可空性?默认的Observer实现似乎有@Nullable注释,它强制IDE提示该值可能为null并且应该手动检查:publicinterfaceObserver{/***Calledwhenthedataischanged.*@paramtThenewdata*/voidonChanged(@NullableTt);} 最佳答案 如果您使用Kotlin,则可以使用一个新选项。您可以将LiveData替换为StateFlow.它更适合Kotlin代码并提供内置的null安全性。而不是使用:cl

android - 如何使用 SafeArgs 将 `null` 设置为可空参数的默认值?

我应该如何传入null作为String参数的默认值,如下所示:如果参数可以为空,应该有一种方法可以传入null对吗? 最佳答案 结果证明旧的@null有效 关于android-如何使用SafeArgs将`null`设置为可空参数的默认值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/53661394/

reflection - kotlin 反射检查可空类型

如何测试KType变量是否包含可空kotlin类型的值(例如Int?)?我有vartype:KType变量来自KProperty.returnType我需要检测它是否等于某些kotlin类型(Int、Long等)。这适用于:when(type){Int::class.defaultType->...Long::class.defaultType->...else->...}但这仅适用于不可为空的类型,所以第一个分支与Int不匹配?但是我还无法弄清楚如何检测类型是Int?除了明显但不是很好type.toString().equals("kotlin.Int?")

reflection - kotlin 反射检查可空类型

如何测试KType变量是否包含可空kotlin类型的值(例如Int?)?我有vartype:KType变量来自KProperty.returnType我需要检测它是否等于某些kotlin类型(Int、Long等)。这适用于:when(type){Int::class.defaultType->...Long::class.defaultType->...else->...}但这仅适用于不可为空的类型,所以第一个分支与Int不匹配?但是我还无法弄清楚如何检测类型是Int?除了明显但不是很好type.toString().equals("kotlin.Int?")

java - Kotlin - 可空字段的非空 getter

我是Kotlin的新手,我尝试将一个小型Java项目重新设计为这种新语言。我在我的项目中使用了mongodb,并且我有一个类,例如:classPlayerEntity{constructor(){}//formongodbtocreateaninstanceconstructor(id:ObjectId,name:String){//usedincodethis.id=idthis.name=name}@org.mongodb.morphia.annotations.Idvarid:ObjectId?=nullvarname:String?=null}由于构造函数为空,我必须将id字段

java - Kotlin - 可空字段的非空 getter

我是Kotlin的新手,我尝试将一个小型Java项目重新设计为这种新语言。我在我的项目中使用了mongodb,并且我有一个类,例如:classPlayerEntity{constructor(){}//formongodbtocreateaninstanceconstructor(id:ObjectId,name:String){//usedincodethis.id=idthis.name=name}@org.mongodb.morphia.annotations.Idvarid:ObjectId?=nullvarname:String?=null}由于构造函数为空,我必须将id字段