执行以下代码时出错,
引起:java.lang.IllegalAccessError:试图访问类 来自班级
的com.google.common.collect.AbstractTable
ImmutableTable.copyOf(listItemsToProcess.parallelStream()
.map(item ->
ProcessorInstanceProvider.getInstance()
.buildImmutableTable(item))
.collect(() -> HashBasedTable.create(),
HashBasedTable::putAll,
HashBasedTable<Integer, String,
Boolean>::putAll)
);
出现错误 - HashBasedTable :: putAll使用Oracle的1.8 jre
答案 0 :(得分:1)
AbstractTable
是在Guava版本15中引入的。看看你的类路径配置;你可能在运行时使用了早期的库版本。
答案 1 :(得分:0)
有趣的是,我用Lambda表达式替换了方法引用并且它有效。
ImmutableTable.copyOf(itemList.parallelStream()
.map(item ->
ProcessorInstanceProvider.get()
.buildImmutableTable(item))
.collect(() -> HashBasedTable.create(),
(a, b) -> a.putAll(b),
(a, b) -> a.putAll(b))
);