HadoopのHelloWorldの例である「WordCount」を見ています。これには次のメソッドが含まれています。
public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
context.write(key, new IntWritable(sum));
}
}
私は自分が読んでいるものを誤解しているに違いありません。私はこれをReduceと呼ばれるジェネリッククラスとして読みました。これは基本クラスReducerを拡張し、いくつかのジェネリック型を使用しています。C#から来る場合、Textのインスタンスが2つあり、コンパイラーは引数を適切にマップする方法を知らないため、署名は許可されません。
誰かがこのなじみのない構文を説明できますか?
編集:これはジェネリックスの例ですが、この形式では、使用される実際の型が宣言で設定されています。クラスReduceはジェネリックではありませんが、Reducerはジェネリックであり、パラメーターA、B、C、およびDを設定しています。