让我们考虑一下下面的课程
class A{
void met(int i){
//do somthing
}
}
让我们考虑一下这个类有一个可选对象,比如:
Optional<A> a;
是否可以在对象a
上调用方法met
,而无需检查a
是指完整的对象还是仅指空的对象(null
)。比如:
a.map(A::met(5));
不幸的是,这段代码无法编译。如何做到这一点?
有两个原因导致这无法工作:
a.map(A::met(5));
met
不返回任何内容,map
必须将输入的可选的
映射到输出的可选的
你需要的是:
a.ifPresent(x->x.met(5));
另一种选择:
a.orElse(new A()).met(5);
如果a
为空,这将在虚拟实例上执行met(5)
,因此这可能不是最好的方法。
问题内容: 我正在尝试使用java反射调用带有可变参数的方法。这是托管方法的类: 这是调用代码: 我在调用invoke的最后一行以“错误数量的参数” 的形式获取IllegalArgumentException 。不知道我在做什么 错。 任何指针将不胜感激。 谢谢 问题答案: public class Test { 为我工作。 将您的N []投射到对象 在实例上调用,而不在类上调用
本文向大家介绍在Java中使用反射调用对象的方法,包括了在Java中使用反射调用对象的方法的使用技巧和注意事项,需要的朋友参考一下 可以使用java.lang.Class.getDeclaredMethods()方法调用对象的方法。此方法返回一个数组,其中包含具有公共,私有,受保护和默认访问权限的所有Method对象。但是,不包括继承的方法。 另外,如果类或接口没有方法,或者在Class对象中表示
我已经通读了文档,但这似乎对我不起作用。我跟踪了这个医生。但我不确定这是否与我要做的事情有关,我认为这个文档是用于传递这样的查询- 这是我的目标:api.site.com/test/(optional_field) 因此,如果有人转到“测试”endpoint,它会将可选字段默认为一个参数,但如果他们在那里添加一些内容,它会将其作为输入。 也就是说,这是我的代码: 我想做的是,如果他们只是在没有可选
问题内容: 我正在扩展一个类并覆盖一个方法。我要做的只是调用super,但是调用了一个经过修改的参数,该参数被其方法之一拦截。一个例子使它更加清楚: 我宁愿使用不需要自己的编译器的工具。最佳选择是什么? 问题答案: 鉴于这是一个接口,您可以考虑使用动态代理,该代理将: 包装原始foo 拦截所有消息并将其转发给原始foo 上面的链接中有一个完整的示例。这只是想法: 请注意,如果不是接口,您仍可以手动
我在类中有一个签名为的方法。 我有一个调用方法的代码块: 如果我想测试databaseService.save(user)没有被调用,那么我如何用Mockito(3.3.3版)来做呢?
我已经设置了ModelAndView对象 然后,我在JSP中导入了其他助手 然后我尝试使用文档字段作为如下参数 IDEA告诉我那个文件没有解决 堆栈跟踪 在jsp文件中的[44]行发生错误:[/WEB-INF/view/jsp/admin/document_card.jsp]document.pub_date无法解析为类型41: РћРїСѓР±Р"икование 42: 43: