我有一个生成的类会出现此错误。在这个类中,有一个巨大的静态块(5000+ 行)。我将块分成几个较小的静态块,但仍然出现此错误。这是为什么
编辑 代码如下所示:
private static final Map<Object, Object> nameMap = Maps.newHashMap();
static{
nameMap.put(xxx);
.... 5000 similar lines
nameMap.put(xxx);
}
我有一个生成的类会出现此错误。在这个类中,有一个巨大的静态块(5000+ 行)。我将块分成几个较小的静态块,但仍然出现此错误。这是为什么
编辑 代码如下所示:
private static final Map<Object, Object> nameMap = Maps.newHashMap();
static{
nameMap.put(xxx);
.... 5000 similar lines
nameMap.put(xxx);
}
如果只是数据,则需要从资源中读取数据。
将您的数据文件安排在与类文件相同的位置,并使用如下内容:
class Primes {
private static final ArrayList<Integer> NUMBERS = new ArrayList<>();
private static final String NUMBER_RESOURCE_NAME = "numbers.txt";
static {
try (InputStream in = Primes.class.getResourceAsStream(NUMBER_RESOURCE_NAME);
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr)) {
for (String line; (line = br.readLine()) != null;) {
String[] numberStrings = line.split(",");
for (String numberString : numberStrings) {
if (numberString.trim().length() > 0) {
NUMBERS.add(Integer.valueOf(numberString));
}
}
}
} catch (NumberFormatException | IOException e) {
throw new IllegalStateException("Loading of static numbers failed", e);
}
}
}
我用它来读取逗号分隔的 1000 个素数列表。