当前位置: 首页 > 面试题库 >

(可选)获取字段

鲁明知
2023-03-14
问题内容

我有一个这样的类结构:

public class Foo {
    private FooB foob;

    public Optional<FooB> getFoob() {
        return Optional.ofNullable(foob);
    }
}

public class FooB {
    private int valA;

    public int getValA() {
        return valA;
    }
}

我的目标是调用get方法fooB,然后检查它是否存在。如果存在,则返回该valA属性;如果不存在,则仅返回null。所以像这样:

Integer valA = foo.getFoob().ifPresent(getValA()).orElse(null);

当然,这不是正确的Java 8可选语法,但这就是我的“伪代码”。用Java 1行有什么办法实现这一点?


问题答案:

您正在描述的是方法Optional.map

Integer valA = foo.getFoob().map(foo -> foo.getValA()).orElse(null);

map``Optional如果值不存在,则可让您使用函数在内转换该值,如果不存在该值,则返回一个空值(可选)。

还要注意,您可以从映射函数返回null,在这种情况下,结果将为Optional.empty()



 类似资料:
  • 我有一个可选对象: 我想返回或如果为空返回。 我们是否有比遵循更复杂的方法来实现这一点?

  • 我正在尝试匹配下面句子中只包含“Jack”的组。我想创建一个正则表达式,它可以获取“hello”之后以及字符串“my friend”之前或之后的任何内容。 以下不起作用: 关于如何在可选组之间建立一些组的任何建议都会很棒。

  • 作为一个例子,我有这样一个可选选项: 我想拥有桌面并在lambda表达式之外使用它。我这样做: 有没有更好的解决方案来获得桌面;像这样的? 编辑:OrElse是我在寻找的方法:)

  • 我试图根据优先级和条件从多个可选项中获取值,比如在下面两组可选项中,可以返回的活动是步行和游泳。如果在任意一个选项中有任何活动,如果有游泳,那么游泳应该优先于步行。如果没有活动,则返回空。我设法写了它,但有太多的条件,想看看是否有一个聪明的方式来避免这么多的条件

  • 问题内容: 也许这听起来有点疯狂,但是我需要提出一个查询以仅从字母数字字段中检索字母。 例如: 表 1234ADD 3901AC 1812OPA 82711AUU 结果预期 ADD AC OPA AUU 谢谢! 问题答案: 看来您只想删除数字。您可以在10g或11g中使用:

  • 我有困难在提交时在烧瓶应用程序的WTForm页面中获取当前选择的项目。提交时,form.tableselector.data值始终等于1,无论选择了SseltField中的哪个项目(并且所有选项都具有表单(1,'table_name')1-10中的唯一表id,其中1是整数。 以下是当前代码: 意见。派克 form.py 桌面视图。html 我注意到,在调试表单时,wtf元对象csrf属性等于Tru