- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了一个 Guava(一个包含有用的东西的库,几乎可以在任何 Java 项目中使用,包括用于不可变集合、函数式编程、I/O 等等的库)基于 CacheBuilder 的缓存
LoadingCache<String, Byte[]> companyDevicesCache =
CacheBuilder.newBuilder()
.maximumSize(1000) // maximum 100 records can be cached
.expireAfterAccess(24, TimeUnit.HOURS) // cache will expire after 30 minutes of access
.build(new CacheLoader<String, Byte[]>(){ // build the cacheloader
@Override
public Byte[] load(String companyId) throws Exception {
//make the expensive call
return getFromServletContext (companyId);
}
});
我也试过
CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.MINUTES)
.maximumSize(1000)
.build(new CacheLoader<String, List<String>>() {
@Override
public List<String> load(String queryKey) throws Exception {
return null;
}
});
还有
CacheLoader loader = new CacheLoader()
{
public String load(String key) throws Exception
{
return null;
}
@Override
public Object load(Object arg0) throws Exception {
// TODO Auto-generated method stub
return null;
}
};
LoadingCache<String, String> persons = CacheBuilder.newBuilder()
.initialCapacity(30)
.maximumSize(40)
.recordStats()
.build(loader);
和
final LoadingCache<String, Optional<Product>> cache =
CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.DAYS)
.refreshAfterWrite(1, TimeUnit.SECONDS)
.build( new CacheLoader<String, Optional<Product>>() {
@Override
public Optional<Product> load( String productId ) throws Exception {
return null;
}
}
);
但是当我初始化 CacheBuilder 时,我得到了这个错误:
]] Root cause of ServletException.
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;J)V
at com.google.common.cache.CacheBuilder.maximumSize(CacheBuilder.java:409)
这是库的版本:guava-20.0-rc1.jar
这里是 ear 中包含的库
我还尝试为这个 guava-19.0.jar
替换库,但后来我得到了
]] Root cause of ServletException.
java.lang.IncompatibleClassChangeError: Found interface com.google.common.base.Equivalence, but class was expected
at com.google.common.cache.LocalCache$Strength$1.defaultEquivalence(LocalCache.java:393)
at com.google.common.cache.CacheBuilder.getKeyEquivalence(CacheBuilder.java:297)
at com.google.common.cache.LocalCache.<init>(LocalCache.java:246)
at com.google.common.cache.LocalCache$LocalLoadingCache.<init>(LocalCache.java:4868)
at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:786)
最佳答案
看起来您在类路径上确实有多个版本的 com.google.common.base.Preconditions
类(可能来自非常旧的 google-collections jar?),或者损坏的 jar。
没有找到的 method overload 已经是 added in Guava 20.0 :
public static void checkState(boolean b, @Nullable String errorMessageTemplate, long p1)
基于 NoSuchMethodError
中的签名:
checkState(ZLjava/lang/String;J)V
|| | |
|| | returns void
|| |
|| long
|String
|
boolean
您可以通过在调用 CacheBuilder.maximumSize()
之前添加以下代码来找到类定义的来源:
System.out.println(com.google.common.base.Preconditions.class
.getProtectionDomain()
.getCodeSource()
.getLocation()
.toExternalForm());
您将获得 jar 的 URL。
我已经从 Maven Central 下载了 guava-20.0-rc1.jar
,提取了它的内容并使用 Preconditions.class
检查了 javap
的内容,方法肯定在那里:
$ javap Preconditions.class
Compiled from "Preconditions.java"
public final class com.google.common.base.Preconditions {
// ...
public static void checkState(boolean, java.lang.String, long);
// ...
}
在你的ant snippet中,有多个通配符include,比如:
<include name="**/spring/*.jar"/>
那里可能有一个额外版本的 Guava,特别是考虑到切换到 guava-19.0 时遇到的另一个错误:Equivalence
在 9.0 之前是一个 interface,并且在 2011 中更改为 10.0 的 class。
关于java - CacheBuilder 中的 NoSuchMethodError (checkState),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305005/
PyQt6 文档说 Qt.CheckState.Unchecked == 0 和 Qt.CheckState.Checked == 2。 我写了一个小程序来测试这一点,但结果完全不同。 程序代码如下:
我做了一个扩展方法来交换 CheckedListBox 中两个项目的位置。该方法放在静态 Utilities 类中。问题是 CheckState 不会移动。因此,如果我在列表中向上移动一个选中的项目,
使用 checkState 相对于断言有什么好处吗?我记得在某处读过我应该更喜欢 checkState 但我不记得为什么。 最佳答案 checkState 和 assert 具有完全不同的目的。 ch
我有一堂这样的课: public class TimerActivity extends Activity { CountDownTimer cntTimer = null; @Override pr
我想在 QSetting 中保存 QCheckBok 的状态,我可以将它的值转换为 int 但也许存在更简单和适当的方法来做到这一点? 这是我的代码: QSetting setting; Qt::Ch
我已经创建了一个 Guava(一个包含有用的东西的库,几乎可以在任何 Java 项目中使用,包括用于不可变集合、函数式编程、I/O 等等的库)基于 CacheBuilder 的缓存 LoadingC
我正在使用 C# 开发一个 WinForms 应用程序,代码如下: ((CheckBox)page.Controls[check_box_name]).CheckState = CheckState.
我正在寻找 CheckedListBox 的事件,该事件在项目的选中状态更改后触发。 ItemCheckEventHandler 对我不利,因为它会在应用新状态之前触发。 谢谢! 最佳答案 如果您要查
本文整理了Java中org.apache.tomcat.websocket.WsSession.checkState()方法的一些代码示例,展示了WsSession.checkState()的具体用法
谁能告诉我使用 checkboxes 选中属性与 CheckState 属性进行数据绑定(bind)的优缺点? 谢谢。 最佳答案 Checked 只能是真或假(显示复选标记或无),而 CheckSta
我在程序中找不到此问题的解决方案:我使用 JMRTD 库创建并个性化 JCOP 卡,但是在完成后,向服务发送关闭命令,然后再次插入卡,任何尝试执行任何操作都会返回卡已断开连接的信息。我是否缺少重置标志
我需要将 int 和/或 bool 转换为 checkState int ValueCheck; private void gsCheck1_CheckedChanged(object se
我在处理选中的列表框时偶然发现了 SetItemChecked 和 SetItemCheckState。 SetItemChecked 采用列表索引和 True/false 来将列表项设置为选中或取消
我正在尝试设置 Android 项目,但出现以下错误。 Unable to find method 'com.google.common.base.Preconditions.checkState(Z
我将 Apache Beam 与 Cloud Dataflow Runner 一起使用,并在尝试运行管道时出现以下异常: java.lang.NoSuchMethodError: com.google
我正在尝试将 Selenium api 与 Gradle 一起使用。这是我的 build.gradle 依赖部分: dependencies { compile 'com.google.api
我正在尝试将 Selenium api 与 Gradle 结合使用。这是我的 build.gradle 依赖部分: dependencies { compile 'com.google.api
我开发的 Selenium 代码: import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; i
我有一个 TestNG 测试,在 Eclipse 中作为 TestNG Suite 运行时可以按预期工作,但通过命令行运行时会失败。我看到无法启动浏览器的问题,但类路径设置工作正常,因为我刚刚打印了h
出现以下错误: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/Str
我是一名优秀的程序员,十分优秀!