小编jhe*_*eyd的帖子

找不到类型org.apache.flink.api.common.typeinfo.TypeInformation [...]的证据参数的隐含值

我正在尝试为Apache Flink编写一些用例.我经常遇到的一个错误是

could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[SomeType]
Run Code Online (Sandbox Code Playgroud)

我的问题是,当它们发生时以及它们不发生时我无法确定.

最近的例子如下

...
val largeJoinDataGen = new LargeJoinDataGen(dataSetSize, dataGen, hitRatio)
val see = StreamExecutionEnvironment.getExecutionEnvironment
val newStreamInput = see.addSource(largeJoinDataGen)
...
Run Code Online (Sandbox Code Playgroud)

where LargeJoinDataGen extends GeneratorSource[(Int, String)]GeneratorSource[T] extends SourceFunction[T],都在单独的文件中定义.

当我试图建立这个时,我得到了

Error:(22, 39) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[(Int, String)]
val newStreamInput = see.addSource(largeJoinDataGen)
Run Code Online (Sandbox Code Playgroud)

1.为什么给定的例子中有错误?

2.当这些错误发生时以及如何在将来避免它们时,一般指导原则是什么?

PS:第一个scala项目和第一个flink项目所以请耐心等待

scala apache-flink flink-streaming

19
推荐指数
3
解决办法
1万
查看次数

Java方法引用抛出NPE

所以我上了一堂课

public class MenuBar extends JMenuBar {

    MenuBarController controller;

    public MenuBar() {
        JMenu menu = new JMenu("File");
        menu.add(createMenuItem("Report", controller::writeReport));
        menu.add(createMenuItem("Save", controller::save));
        menu.add(createMenuItem("Import", controller::importFile));
        menu.add(createMenuItem("Clear DB", controller::clearDatabase));
        add(menu);
    }

    public void setController(MenuBarController controller) {
        this.controller = controller;
    }
}
Run Code Online (Sandbox Code Playgroud)

MenuBarController是一个接口,其实现是setController在创建MenuBar之后设置的.代码抛出NullpointerException,menu.add(createMenuItem("Report", controller::writeReport))只能由此引起controller::writeReport.如果我用lambda代替它,就像() -> controller.writeReport()没有NPE 一样.

1.为什么controller::writeReport抛出NPE?

为什么lambda不投掷NPE?

有趣的部分是:如果我用lambda运行一次后用之前使用的方法引用替换lambda,则不再抛出NPE.

任何人都知道为什么会这样?一些javac/eclipse奇怪吗?

java lambda java-8

6
推荐指数
1
解决办法
290
查看次数

标签 统计

apache-flink ×1

flink-streaming ×1

java ×1

java-8 ×1

lambda ×1

scala ×1