我有一个对我来说很奇怪的问题:
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。
那是为什么?这是怎么回事?
谢谢!