JDK-8010200 : lambda: reflection library support for concrete interface methods
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang:reflect
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2013-03-18
  • Updated: 2013-04-24
  • Resolved: 2013-04-24
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description
Add library support for concrete interface methods for lambda.
This includes:
1) get(Declared)Methods display of default methods - which
are public, concrete instance methods in interfaces
2) getDeclaredMethods display of private synthetic concrete instance methods in interfaces
3) get(Declared)Methods display of static concrete methods in interfaces

Invocation:
1. static methods should be invoked via invokestatic
2. private instance methods (both in classes and in interfaces) should be invoked via
invokespecial

VM support for the display options is being added via 8010017
Comments
Decided to change the VM support for invokevirtual and invokeinterface rather than changing reflection library, assuming that if reflection is counting on for example being able to invoke a private method inherited from a class (with setAccessible), then they and others would also be counting on being able to invoke a private method inherited from an interface.
24-04-2013