```
import java.util.function.Function;

public class Playground {
    public static void main (String[] args) {
        Object o = null;
        System.out.println(o);
        Function<Object, String> toStringFunc = Object::toString;
        String s = toStringFunc.apply(o);
        System.out.println(s);
    }
}

```

This code will result in a `NullPointerException` being thrown, reported at the line containing `toStringFunc.apply(o)`.

This is a trivial example, so it's easy to see that `o == null`, but how in general can we understand why this line of code would throw a NPE, as `toStringFunc`, the only variable being dereferenced in that line, is not null.