-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
1.2.Final, 2.0-EDR1
-
None
As stated in various discussion on JDK8, lambda expressions don't allow to retrieve parameter types by reflection.
See:
http://jdk8-dev.openjdk.java.narkive.com/bSPiKxap/jdk-8-lambda-reflection-issues
As section 10.1 of the spec states:
The event types of the event include all superclasses and interfaces of the runtime class of the event object.
In case of a lambda payload, observer resolution will fails when respecting the rule above since parameter type won't be retrieve from the lambda.
For instance the following code
@Inject Event<Supplier<String>> stringSupplierEvent; ... Supplier<String> stringSupplier = () -> "Hello world"; stringSupplierEvent.fire(stringSupplier);
will triggers an observer for Supplier but not an observer for Supplier<String>.
- relates to
-
WELD-2108 Observer resolution fails if payload is a lambda expression
- Open