我对在Java8中使用optionals是新手。我知道orElseGet()方法接受一个供应商,orElseThrow()也接受一个引发异常的供应商。如果我可以构造自己的异常,并在异常被触发时执行某些操作,orElseThrow()可能是一个很好的方法。
我的主要目标是使用一个方法,该方法要么获得未包装的值,要么如果可选包装为null,则实际执行一个完全不同的函数。
寻找最接近的东西:
class DoInsteadClass {
public void doInstead() {
// Do this instead
}
}
Optional<String> myString = "Hello";
num.orElse(DoInsteadClass::doInstead);
如果唯一的方法是orElseThrow(),并且只要我能用“do this instead”代码处理异常,那么这也没问题。它只是使我的代码库更大,因为我必须为一些可选值返回null的2或3种情况创建几个不同的自定义实用程序供应商。
问题是,.ifpresent()用值调用指定的使用者,否则什么也不做。如果值为空,我需要它做一些事情。我当前的代码使用了一个自定义的变通方法,首先检查值是否为null,如果为null,则执行选定的函数。然后下一个语句是检查ifPresent()的语句。所以这是在做同样的事情,我只是在寻找一个更糖衣的,一个声明版本。
在JDK 9中,将有一个ifpresentorelse
方法允许使用它。
但是,目前您可以使用if(num.ispresent())
ifpresentorelse
方法选择if语句,或者编写您自己的可重用的ifpresentorelse
方法。
公共类请求参数{ } 当我在URL为“param2=ffffhhh”的情况下测试上述方法时
问题内容: 我有一个运行某些逻辑的Java方面。我需要它返回一个结果(一个对象),该结果可以在方面的切入点截取的方法中使用。可能吗? 问题答案: 您需要的是可以让您将想要的任何东西返回给建议对象的方法:
我读到在大多数情况下不需要为udf指定返回类型,但如果您添加语句,那么它是必要的。 我有以下udf,它在内部迭代一个列表,我希望在匹配的情况下udf立即返回。基于我在这里找到的其他答案,我尝试了以下两种方法来定义返回类型: 上面的脚本只是返回一个错误 上面的剧本一直在说: 错误:方法删除别名有返回语句;需要结果类型 指定返回类型的正确方法是什么?
有人能说说这件事吗?
可选的用于表示可为空的对象,该类的一些用途包括 作为方法返回类型,作为返回null以 表示没有可用值的替代方法 区分“未知”(例如,不存在于映射中)和“已知无值”(存在于映射中,具有值 optional.缺席()) 将可为null的引用包装起来存储在不支持null的集合中(不过有几种其他方法应该首先考虑) 对于第一种情况,我是否需要在所有可为空的返回方法中返回可选的?