Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反汇编Java代码_Java_Hadoop_Mapreduce - Fatal编程技术网

反汇编Java代码

反汇编Java代码,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,阅读ApacheCrunch示例,该示例主要是Java,对两者都是新手。(我知道.NET) 下面是示例代码: DoFn<String, Pair<String, Long>> extractIPResponseSize = new DoFn<String, Pair<String, Long>>() { transient Pattern pattern; public void initialize() { pattern = P

阅读ApacheCrunch示例,该示例主要是Java,对两者都是新手。(我知道.NET) 下面是示例代码:

DoFn<String, Pair<String, Long>> extractIPResponseSize = new DoFn<String, Pair<String, Long>>() {
  transient Pattern pattern;
  public void initialize() {
    pattern = Pattern.compile(logRegex);
  }
  public void process(String line, Emitter<Pair<String, Long>> emitter) {
    Matcher matcher = pattern.matcher(line);
    if(matcher.matches()) {
      try {
        Long responseSize = Long.parseLong(matcher.group(7));
        String remoteAddr = matcher.group(1);
        emitter.emit(Pair.of(remoteAddr, responseSize));
      } catch (NumberFormatException e) {
        // corrupt line, we should increment a counter
      }
    }
  }
};
DoFn extractIPResponseSize=new DoFn(){
瞬态模式;
公共无效初始化(){
pattern=pattern.compile(logRegex);
}
公共无效过程(字符串行、发射器){
匹配器匹配器=模式匹配器(线);
if(matcher.matches()){
试一试{
Long responseSize=Long.parseLong(matcher.group(7));
字符串remoteAddr=matcher.group(1);
emit(一对(remoteAddr,responseSize));
}捕获(数字格式){
//损坏的线路,我们应该增加一个计数器
}
}
}
};
第一行让我很困惑,我听不懂,你能逐一解释一下吗? 注意:
DoFn
是Apache Crunch中的一个类,下面是相关文档:

我也做了一些谷歌搜索,看起来这里的
Pair
也是Apache常见的语言:


也许我需要理解的是Java泛型?

DoFn
是一个泛型类。也就是说,它的每个实例都包含类型参数。类型参数在方法中使用,但由编译器用
Object
引用替换。有关泛型的更多信息,请参阅


至于那一行后面的大括号,这是一个微妙的提醒,这实际上是一个正在声明的内部类。它是
DoFn
的匿名子类,覆盖
initialize
process
方法。有关内部类的更多信息,请参阅。

您需要了解泛型。