You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Simone Robutti (JIRA)" <ji...@apache.org> on 2016/03/02 12:16:18 UTC

[jira] [Created] (FLINK-3563) .returns() doesn't compile when using .map() with a custom MapFunction

Simone Robutti created FLINK-3563:
-------------------------------------

             Summary: .returns() doesn't compile when using .map() with a custom MapFunction
                 Key: FLINK-3563
                 URL: https://issues.apache.org/jira/browse/FLINK-3563
             Project: Flink
          Issue Type: Bug
          Components: Type Serialization System
    Affects Versions: 0.10.1
            Reporter: Simone Robutti
            Priority: Minor


Defined a DummyMapFunction that goes from a java Map to another java Map like this:

{code:title=DummyMapFunction.scalaborderStyle=solid}
class DummyMapFunction() extends MapFunction[java.util.Map[String, Any], java.util.Map[FieldName, Any]] {
  override def map(input: java.util.Map[String, Any]): java.util.Map[FieldName, Any] = {
    val result: java.util.Map[FieldName, Any] = new java.util.HashMap[FieldName, Any]()
    result
  }
}
{code}

and trying to use it with a map:

{code:title=Main.java}
DummyMapFunction operator = new DummyMapFunction();

DataSource<Map<String, Object>> dataset = env.fromCollection(input);
        List<java.util.Map<FieldName, Object>> collectedResult = dataset.map(operator).returns(java.util.Map.class).collect();
{code}

the returns call doesn't compile because it can't resolve the returns method with the parameter.

But if insted of creating a variable of type DummyMapFunction I create a

{code}
MapFunction operator=new DummyMapFuction();
{code}

or I explicitly cast the variable to a MapFunction, it compiles and work flawlessly.

This is a trick that works but I think is an unexpected behaviour. 



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