Package xyz.cofe.trambda
Class AsmQuery<ENV>
- java.lang.Object
-
- xyz.cofe.trambda.AsmQuery<ENV>
-
- Type Parameters:
ENV- Окружение передаваемое в лямбду
- All Implemented Interfaces:
Query<ENV>
public class AsmQuery<ENV> extends Object implements Query<ENV>
Сериализация Java лямбды.Это клас по сути является абстрактным, и для реализации конечной функциональности требуется переопределить метод
call(Fn1, SerializedLambda, LambdaDump)Данный класс по сути выполняет следующие функции
- Метода
apply(Fn1)- получает байт код fn - Полученный байт код передает в
call(Fn1, SerializedLambda, LambdaDump)
AtomicReference<LambdaDump> mdefRef = new AtomicReference<>(); var res = new AsmQuery<IEnv>(){ @Override protectedRES call(Fn<IEnv, RES> fn, SerializedLambda sl, LambdaDump dump){ // Сохранение представления байт кода mdefRef.set(dump); return super.call(fn, sl, mdef); } }.apply( env0 -> env0.getUsers().filter(u -> u.getName().contains("Petrov")) ); - See Also:
MethodDump
-
-
Field Summary
Fields Modifier and Type Field Description protected LambdaDumplambdaDumpInstprotected ThreadLocal<SerializedLambda>serLambda
-
Constructor Summary
Constructors Constructor Description AsmQuery()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <RES> RESapply(xyz.cofe.fn.Fn1<ENV,RES> fn)Сериализация и вызов лямбдыprotected <RES> REScall(xyz.cofe.fn.Fn1<ENV,RES> fn, SerializedLambda sl, LambdaDump dump)Реализация вызова лямбдыprotected LambdaDumplambdaDump()
-
-
-
Field Detail
-
serLambda
protected final ThreadLocal<SerializedLambda> serLambda
-
lambdaDumpInst
protected volatile LambdaDump lambdaDumpInst
-
-
Method Detail
-
lambdaDump
protected LambdaDump lambdaDump()
-
apply
public <RES> RES apply(xyz.cofe.fn.Fn1<ENV,RES> fn)
Сериализация и вызов лямбды
-
call
protected <RES> RES call(xyz.cofe.fn.Fn1<ENV,RES> fn, SerializedLambda sl, LambdaDump dump)
Реализация вызова лямбды- Type Parameters:
RES- результат вызова- Parameters:
fn- лямбдаsl- лямбда - сериализацияdump- байт-код лямбды- Returns:
- результат вызова
-
-