[ 
https://issues.apache.org/jira/browse/KAFKA-6018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16324659#comment-16324659
 ] 

ASF GitHub Bot commented on KAFKA-6018:
---------------------------------------

steven-aerts opened a new pull request #4033: KAFKA-6018: Make 
KafkaFuture.Future an interface
URL: https://github.com/apache/kafka/pull/4033
 
 
   Changing KafkaFuture.Future and KafkaFuture.BiConsumer into an interface 
makes
   them a functional interface.  This makes them Java 8 lambda compatible.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Make KafkaFuture.Function java 8 lambda compatible
> --------------------------------------------------
>
>                 Key: KAFKA-6018
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6018
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>            Reporter: Steven Aerts
>
> KafkaFuture.Function is currently an empty public abstract class.
> This means you cannot implement them as a java lambda.  And you end up with 
> constructs as:
> {code:java}
> new KafkaFuture.Function<Set<String>, Object>() {
>     @Override
>     public Object apply(Set<String> strings) {
>         return foo;
>     }
> }
> {code}
> I propose to define them as interfaces.
> So this code can become in java 8:
> {code:java}
> strings -> foo
> {code}
> I know this change is backwards incompatible (extends becomes implements).
> But as {{KafkaFuture}} is marked as {{@InterfaceStability.Evolving}}.
> And KafkaFuture states in its javadoc:
> {quote}This will eventually become a thin shim on top of Java 8's 
> CompletableFuture.{quote}
> I think this change might be worth considering.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to