[英]Guava Optional. How to use the correct
我上课了
private class TouchCommand {
private int action;
private int x;
private int y;
...
执行命令时,必须验证字段值 - null / not null,并根据它来产生纵向操作。 我想使用Google Guava中的选项。
哪种解决方案是对的? 这个:
public boolean executeCommand() {
Optional<Integer> optionalAction = Optional.fromNullable(action);
...
要么:
private class TouchCommand {
private Optional<Integer> action;
private Optional<Integer> x;
private Optional<Integer> y;
...
鉴于对parseAction的调用也可能返回null(或不存在):
TouchCommand touchCommand = new TouchCommand();
touchCommand.mAction = parseAction(xmlParser.getAttributeValue(namespace, "action"));
...
问题:
谢谢。
番石榴贡献者在这里......
任何或所有这些都很好,但其中一些可能是矫枉过正。
通常,正如StackOverflow回答中所讨论的那样, Optional
主要用于两件事:更清楚地表达null
含义 ,以及方法返回值以确保调用者处理“缺席”情况(使用null
更容易忘记。 我们当然不提倡用代码中的Optional
替换每个可以为null的值 - 我们当然不会在Guava内部这样做!
其中很多都必须是你的决定 - 没有普遍的规则,这是一个相对主观的判断,我没有足够的背景来确定我在你的位置做什么 - 但是根据你的具体情况而定我提供,我会考虑使方法返回Optional
,但可能不会更改任何其他字段或任何东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.