У меня есть фрагмент кода, в котором я использую статический блок кода для инициализации переменной.
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());
.......
}
}
Моя проблема в том, что переменная rt в приведенном выше фрагменте кода не инициализируется. Может ли кто-нибудь предложить исправление или альтернативный способ инициализации переменной. Я не хочу инициализировать его внутри моей функции карты, так как это замедляет весь процесс.