Я работал над программой HuffmanCode и думал, что закончил ее сегодня утром. Тем не менее, я случайно начал получать NullPointerException
, хотя сегодня он прекрасно работал. Ниже приведен метод, который вызывает проблемы: (порт = левая сторона дерева, звезда = правая сторона дерева)
public void translate(BitInputStream input, PrintStream output) {
HuffmanNode tempRootRef = huffmanRootRef;
while(input.hasNextBit() || (tempRootRef.port == null && tempRootRef.star == null)) {
if(tempRootRef.port == null && tempRootRef.star == null) {
output.write(tempRootRef.charValue);
tempRootRef = huffmanRootRef;
} else if (input.nextBit() == 0){
tempRootRef = tempRootRef.port;
} else {
tempRootRef = tempRootRef.star;
}
}
}
Я получаю NullPointerException
в первом операторе if:
Exception in thread "main" java.lang.NullPointerException
at HuffmanCode.translate(HuffmanCode.java:118)
at HuffmanCompressor.decompress(HuffmanCompressor.java:115)
at HuffmanCompressor.main(HuffmanCompressor.java:178)
Я пытался просмотреть ответы на похожие вопросы, но мне было трудно их понять.