O'Reilly の著書Hadoop: The Definitive Guide (Tom White 著、第 3 版) の Java コードの例と、それを再現/理解するための私自身の試みを比較しています。私が抱えている問題は次のとおりです。
本のクラスは問題なくコンパイルされます。
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class MaxTemperatureReducer
extends Reducer<Text, IntWritable, Text, IntWritable> {
@Override
public void reduce(Text key, Iterable<IntWritable> values,
Context context)
throws IOException, InterruptedException {
int maxValue = Integer.MIN_VALUE;
for (IntWritable value : values) {
maxValue = Math.max(maxValue, value.get());
}
context.write(key, new IntWritable(maxValue));
}
}
しかし、その一部を自分でテストしようとすると、「int を逆参照できません:」というコンパイル エラーが発生します。
public class TestMinValue {
public static void main(String[] args){
int[] values = {1,2,3,4,5};
int maxValue = Integer.MIN_VALUE;
for(int value : values){
maxValue = Math.max(maxValue, value.get());
}
}
}
私はJavaが初めてで、違いを理解したいと思っています。サンプルクラスはなぜ機能するのに、私のスニペットは機能しないのですか?