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

ASF GitHub Bot commented on GEODE-1577:
---------------------------------------

Github user metatype commented on a diff in the pull request:

    https://github.com/apache/geode/pull/321#discussion_r93149349
  
    --- Diff: 
geode-core/src/main/java/org/apache/geode/cache/execute/Execution.java ---
    @@ -89,7 +89,7 @@
        * 
        * @since GemFire 6.0
        */
    -  public ResultCollector<?, ?> execute(String functionId) throws 
FunctionException;
    +  public <T, S> ResultCollector<T, S> execute(String functionId) throws 
FunctionException;
    --- End diff --
    
    Since this is a public API, you should describe the params in javadoc when 
it's not obvious what T and S refer to.  You can use the `@param` tag as seen 
in [1].
    
    [1] 
https://github.com/apache/geode/blob/8bf39571471642beaaa36c9626a61a90bd3803c2/geode-core/src/main/java/org/apache/geode/cache/snapshot/RegionSnapshotService.java



> Unhelpful generic types on Execution.execute
> --------------------------------------------
>
>                 Key: GEODE-1577
>                 URL: https://issues.apache.org/jira/browse/GEODE-1577
>             Project: Geode
>          Issue Type: Bug
>          Components: functions
>            Reporter: Dan Smith
>            Assignee: Alyssa Kim
>              Labels: starter
>
> The execute methods of the function service Execution class returns a 
> ResultCollector with wildcards for the type.
> {code}  
> public ResultCollector<?, ?> execute(
>       Function function) throws FunctionException;
> {code}
> Wildcards are supposed to be used in APIs where the type doesn't matter, for 
> example counting the elements in a list. By returning a ResultCollector with 
> wildcards, we're essentially forcing the user to cast the result collector.
> At a minimum they should be able to pick the type of result collector
> {code}
>   public <T,S> ResultCollector<T, S> execute(
>       Function function) throws FunctionException;
> {code}
> But maybe it would make more sense to parameterize Execution itself. Then the 
> compiler could ensure that the types used by withCollector and the types used 
> by execute match.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to