我有一个自定义链接列表类,该类具有一个find函数,该函数将遍历列表,直到测试通过并返回该节点。
呼叫时:
firstHid = find(list, point::isNotVisible);
我得到了错误:
java.lang.NoClassDefFoundError:无法解决以下问题:Lnu / abc /-$$ Lambda $ 1Xu6yqqPInUkBwCVFTE0OiCxD-o;
为了测试,我尝试了以下操作:
Predicate<Edge> test = point::isVisible;
哪个仍然给出相同的错误。我尝试在方法上方使用@Keep,因为我认为可能是造成混淆的原因,但这并不能解决问题。然后,我检查了minSDK中的方法引用,并说它适用于任何方法。我不确定从这里去哪里。
函数如下:
public static <T> CustomLinkedList<T> find(CustomLinkedList<T> begin,
Predicate<T> fn) {
if (begin == null) { return null; }
CustomLinkedList<T> iterator = begin;
do {
if (fn.test(iterator.data)){
return iterator;
}
iterator = iterator.next;
} while (iterator != begin && iterator != null);
return null;
}
答案 0 :(得分:1)
似乎您正在使用java.util.function
包中的类Predicate。
文档https://developer.android.com/studio/write/java8-support 声明此程序包仅在API级别24或更高版本中可用,并且您尝试在具有API 21的Android 5.0上运行它。
您仍然可以从guava库中使用谓词或编写自己的界面。