我有一个代码片段,我正在使用一个静态代码块来初始化一个变量。hadoop映射器静态初始化
public static class JoinMap extends
Mapper<IntWritable, MbrWritable, LongWritable, IntWritable> {
.......
public static RTree rt = null;
static {
String rtreeFileName = "R.rtree";
rt = new RTree(rtreeFileName);
}
public void map(IntWritable key, MbrWritable mbr,Context context)
throws IOException, InterruptedException {
.........
List elements = rt.overlaps(mbr.getRect());
.......
}
}
我的问题是,可变室温在上面的代码片段是没有得到初始化。任何人都可以提出修复或替代方法来初始化变量。我不想在我的map函数中初始化它,因为这会减慢整个过程。
java的连续执行类的静态部分时加载类,所以会有第一项任务,然后是第二项任务。 – 2016-06-29 11:37:55