我想编写一个将 Lambdaj.on() 调用的结果或字符串作为参数的方法。
public static <T> void method(T arg) {
}
T
这里可以是字符串。是否可以确定 arg 是否是使用 Lambdaj.on() 方法创建的?
在阅读了 Lambdaj 源代码(大部分是ArgumentsFactory.java )后,我可以得出结论,这是不可能的。
Lambdaj 将数据存储在 aWeakHashMap<Object, Argument<?>>
中,其中 key 是返回的内容,例如on(SomeCLass.classs).getX()
. WeakHashMap 使用.hashCode()
和比较对象.equals()
。