Java1.8正在接收可选的
类,它允许我们显式地说明一个方法何时可能返回空值,并在使用它之前“强制”它的使用者验证它是否为空(ispresent()
)。
我看到C#有nullable
,它执行类似的操作,但使用的是基本类型。它似乎用于DB查询,以区分值是否存在且为0,以及值是否不存在且为NULL。
但似乎C#的nullable
对对象不起作用,只对基本类型起作用,而Java的optional
只对对象起作用,对基本类型不起作用。
在C#中是否有一个可为空的/可选的类,迫使我们在提取和使用object之前测试它是否存在?
不是用这种语言,不是,但你可以自己写:
public struct Optional<T>
{
public bool HasValue { get; private set; }
private T value;
public T Value
{
get
{
if (HasValue)
return value;
else
throw new InvalidOperationException();
}
}
public Optional(T value)
{
this.value = value;
HasValue = true;
}
public static explicit operator T(Optional<T> optional)
{
return optional.Value;
}
public static implicit operator Optional<T>(T value)
{
return new Optional<T>(value);
}
public override bool Equals(object obj)
{
if (obj is Optional<T>)
return this.Equals((Optional<T>)obj);
else
return false;
}
public bool Equals(Optional<T> other)
{
if (HasValue && other.HasValue)
return object.Equals(value, other.value);
else
return HasValue == other.HasValue;
}
}
请注意,您将无法模拟nullable
的某些行为,例如将一个无值的可空值装箱为null的能力,而不是装箱的可空值,因为它具有对该行为(以及其他一些行为)的特殊编译器支持。
问题内容: 如何通过使用和避免返回值? 例: 问题答案: 要返回可选值的值,或者返回默认值(如果可选值没有值),则可以使用。 请注意,我重写了查找最长名称的代码:您可以直接与比较器比较每个String的长度。可以通过调用键提取器作为方法引用来获得一个这样的比较器。
是否有任何方法可以从NamedParameterJdbcTemplate返回可选的? 我的查询有时会返回空。所以我想要漂亮的方法来检查空。我不想做尝试捕捉空结果数据访问异常,因为这个有点丑。
我正在做一个项目,最近开始使用MPAndroidChart。 我的MPAndroidChart可以正常工作并正确填充图表数据,但我希望有一种方法能够拖动并选择图表的一个区域。选择完成后,需要返回所选点的x值和y值。 我找不到任何方法来做我想做的事。我在中发现了这种突出显示功能https://github.com/PhilJay/MPAndroidChart/wiki/Highlighting但我认
本文向大家介绍在.NET MVC C#中可以在哪些级别应用筛选器?,包括了在.NET MVC C#中可以在哪些级别应用筛选器?的使用技巧和注意事项,需要的朋友参考一下 在ASP .Net MVC应用程序中,可以在三个级别上应用过滤器。 行动方法水平 控制器级别 全球水平 行动方法水平 在“操作方法”级别应用的过滤器仅特别适用于该操作方法。 控制器级别 控制器级过滤器适用于所有操作方法。以下过滤器适
我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit:
Net-C 是一个跨平台的局域网聊天工具,支持表情、私信,设置用户状态、群组聊天等功能。 主界面如下图所示