我已经盯着这个短代码太久了,我一生都看不到它如何NullPointerException
在第 6 行抛出一个。为什么是 NPE?
class ConvertTest {
public static void main(String[] args) throws Exception {
byte[] b = "Ha".getBytes("UTF-8");
System.out.println("bytes: " + b.length);
javax.xml.bind.DatatypeConverter.printBase64Binary(b); // NPE!
}
}
输出
bytes: 2
Exception in thread "main" java.lang.NullPointerException
at javax.xml.bind.DatatypeConverter.printBase64Binary(DatatypeConverter.java:547)
at ConvertTest.main(ConvertTest.java:6)
Press any key to continue . . .
更新
虽然许多错误报告都指向 1.7 变体,但我很惊讶地看到 Eclipse 被配置为使用1.6.0_32
并且 TextPad 找到了一个版本1.6.0-b105
(甚至没有意识到已安装!)。
两个 JRE 都因该 NPE 而失败。