供应商工作时抛出方法参考

时间:2019-03-20 14:37:53

标签: java java-8

我有一个对我来说很奇怪的问题:

Person p = null;

Supplier<String> s = p::getName; // Throws NPE immediately

Supplier<String> s2 = () -> p.getName();
s2.get(); // Throws NPE after get() call

s s2 都是供应商,但工作方式却如此不同吗?

我希望 s 在调用 s.get()之后立即抛出NPE。

那是为什么?这是怎么回事?

谢谢!

0 个答案:

没有答案