0
有一種方法,以確定一個給定的Java拉姆達對象是否是一種方法的參考或「特定調用點-」拉姆達:檢測拉姆達是否是這樣的方法參考
boolean isMethodReference(Object lambda)
正例如:
assertTrue(isMethodReference(Object::toString));
負例如具有 「特定調用點-」 拉姆達:
long valueFromCallSite = System.currentTimeMillis();
Consumer<Object> lambda = o -> {
if (valueFromCallSite % 2 == 0) {
o.toString();
} else {
o.hashCode();
}
};
assertFalse(isMethodReference(lambda));
在實例上運行'.getClass()'將返回一個動態/合成類。你不應該依賴這個。你的程序不應該關心實例來自哪裏。 – Savior
你的用例是什麼? (只是好奇,不能認爲我有理由知道/關心。) – davidbak
我對這個問題的回答是「我確實希望那裏不是一種方式。」 –