我正在比较 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 cannot be dereferenced:”的编译错误:
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 新手,想了解其中的区别;为什么示例类工作,但我的片段不是?