RFR : CR8004015 : Add parent interfaces and default methods to basic functional interfaces
Mike Duigou
mike.duigou at oracle.com
Thu Dec 13 21:24:30 PST 2012
Hello all;
I have updated the webrev again for hopefully the last time:
http://cr.openjdk.java.net/~mduigou/8004015/3/webrev/
http://cr.openjdk.java.net/~mduigou/8004015/3/specdiff/overview-summary.html
The implementation now uses Primitive.primitiveValue() ie. Integer.integerValue() rather than a cast. Same bytecode but using the intrinsic function makes it more clear that result is either primitive or NPE and that CCE is not possible.
I have added @throws NPE for a number of the default methods. We won't be including @throws NPE in all cases where null is disallowed because when the @throws NPE is declared the API is required to throw NPE in that circumstance. So for cases where the NPE is "naturally" thrown or that aren't performance sensitive we will likely add @throws NPE declarations but for performance sensitive methods we won't be adding explicit null checks to match a @throws NPE specification. There's a tradeoff here in some cases. Please feel free to quibble about specific cases as they occur. :-)
Mike
More information about the lambda-libs-spec-observers
mailing list