我有一个来自库的方法,看起来像这样:
<T> T invoke(K key, EntryProcessor<K, V, T> entryProcessor, Object... arguments);
而EntryProcessor
接口只有一个方法定义:
T process(MutableEntry<K, V> entry, Object... arguments) throws EntryProcessorException;
不幸的是,对于我的用例,我需要EntryProcessor
和Serializable
。
一种解决方案是创建一个新类来实现EntryProcator
和Serializable
,在这种情况下,我必须为每个不同的用例创建一个不同的类。
通常,如果没有Serializable
,我可以将invoke
方法作为lambda调用,这样就不用创建专门的类包了。
foo.invoke(1L, (entry, arguments) -> {
...
return null;
});
有没有办法用Serializable
接口扩展这个lambda?
这个怎么样?
Object[] arguments = new Object[0];
EntryProcessor<Long, String, Integer> it;
it = (EntryProcessor<Long, String, Integer> & Serializable) (entry, args) -> 1;
invoke(1L, it, arguments);
我有下面的类和对象的ArrayList: 我想要的是从我的列表中得到一个字符串和整数地图,其中包含门票中的目的地和我列表中每个目的地的出现次数。我想它会这样开始,但是我不知道如何继续:
问题内容: 最近,我发现了NSExpression类,我想知道是否有可能评估表达式中的自定义变量。 像这样: 我想用自定义Double值替换此MYVAR字符串。 如果不存在,我将使用循环和类似方法,但希望有一个内置的(并且更快)的解决方案。 谢谢。 问题答案: Xcode 8 GM•Swift 3
我正在测试java的lambda是否与接口函数匹配,我在下面写了代码,它可以工作。我有接口和它的。在构建时,Javalambda被转换为我的接口的实现者。 程序将打印。到目前为止还不错,但是如果我在中添加一些其他函数声明,如下所示: 线程构造函数中的lambda将无法编译,表示 那么,Java编译器什么时候可以决定lambda可以匹配MyHandler的类型,而不管我的函数名是什么?Justing
问题内容: 我计划在我的Swift项目中使用Google Drive API 。我正在尝试通过CocoaPods(v0.39.0)添加Drive SDK。以下是我的Podfile。 我添加了标志,以便CocoaPods可以将Objective-C Pod转换为Swift框架,而不是静态库。 吊舱安装成功。但是,当我构建项目时,出现以下错误。 类“ GTMHTTPUploadFetcher”的接口定
问题内容: 我正在将Java中的项目转换为Kotlin,而令我惊讶的是,该接口使Kotlin中的代码比Java中的代码重。 示例 :我想从MyFragment在MainActivity中设置onBackPressListener。 文件1:MainActivity,文件2:MyFragment,文件3:OnBackPressedListener(接口) Java中的文件1,Kotlin中的文件2,
用Java 8 lambdas到处乱搞。为什么当我向接口添加另一个方法时,这会给我一个错误: 不使用第二个方法也能正常工作:“public int getID(String name)