Ale*_*ndr 4 java optional guava
我上课了
private class TouchCommand {
private int action;
private int x;
private int y;
...
Run Code Online (Sandbox Code Playgroud)
执行命令时,必须验证字段值 - null/not null,并根据它来产生纵向操作.我想使用Google Guava中的选项.
哪种解决方案是对的?这个:
public boolean executeCommand() {
Optional<Integer> optionalAction = Optional.fromNullable(action);
...
Run Code Online (Sandbox Code Playgroud)
要么:
private class TouchCommand {
private Optional<Integer> action;
private Optional<Integer> x;
private Optional<Integer> y;
...
Run Code Online (Sandbox Code Playgroud)
鉴于对parseAction的调用也可能返回null(或不存在):
TouchCommand touchCommand = new TouchCommand();
touchCommand.mAction = parseAction(xmlParser.getAttributeValue(namespace, "action"));
...
Run Code Online (Sandbox Code Playgroud)
问题:
谢谢.
Lou*_*man 19
番石榴贡献者在这里......
任何或所有这些都很好,但其中一些可能是矫枉过正.
一般来说,在讨论这个StackOverflow的答案,Optional主要用于两件事情:这样可以很清楚你会一直意味着通过null,并在方法的返回值,以确保呼叫方负责将"缺席"情况下(这更容易忘记了null).我们当然不主张用Optional代码中的任何地方替换每个可以为空的值- 我们当然不会在Guava本身内这样做!
其中很多都必须是你的决定 - 没有普遍的规则,这是一个相对主观的判断,我没有足够的背景来确定我在你的位置做什么 - 但是根据你的具体情况而定我提供了,我会考虑让方法返回Optional,但可能不会改变任何其他字段或任何东西.
| 归档时间: |
|
| 查看次数: |
14101 次 |
| 最近记录: |