@public修饰符在方法签名中的含义是什么?

时间:2017-11-07 08:45:10

标签: java syntax apache-flink

我们最近正在使用Apache Flink流式传输框架,非常好。然而,在文档中我们偶然发现了一些我以前从未见过的Java事物,这个类

public class MyMapper extends RichMapFunction<String, Integer> {
  private Counter counter;

  @Override
  public void open(Configuration config) {
    this.counter = getRuntimeContext()
      .getMetricGroup()
      .counter("myCounter");
  }

  @public Integer map(String value) throws Exception {
    this.counter.inc();
  }
}

@public对map方法意味着什么,更有趣的是为什么在方法中没有声明返回,尽管返回类型被定义为Integer?

或者这只是他们文档中的一些问题?

以下是参考Flink Docu

的页面

1 个答案:

答案 0 :(得分:2)

这似乎是文档的一个问题。

@中的@public不正确,应该删除,即这应该是Java关键字public。另一个答案中提到的@Public注释不应该用在用户代码中,而只能用在Flink的公共接口中。

文档页面是关于如何使用指标的,因此作者可能专注于更新指标的调用并忘记了map()方法的返回值。

如果您可以打开JIRA issue报告错误的文档,那就太棒了。谢谢!