触发代码如下:
public static void main(String[] args) {
HSSFWorkbook sheets = new HSSFWorkbook();
for (int i = 0;i<100000;i++){
HSSFFont font = sheets.createFont();
}
}
是由于创建font个数太多导致的,font最多有32767个,源码如下:
public HSSFFont createFont() {
this.workbook.createNewFont();
short fontindex = (short)(this.getNumberOfFonts() - 1);
if (fontindex > 3) {
++fontindex;
}
if (fontindex == 32767) {
throw new IllegalArgumentException("Maximum number of fonts was exceeded");
} else {
return this.getFontAt(fontindex);
}
}