Package org.omnifaces.utils.reflect
Interface Getter<T>
-
- Type Parameters:
T
- The generic base type.
- All Superinterfaces:
Function<T,Object>
,Serializable
public interface Getter<T> extends Function<T,Object>, Serializable
So we can extract method info from a method reference. Usage example:
Map<Getter<YourEntity>, Object> criteria = new HashMap<>(); criteria.put(YourEntity::getName, Like.startsWith(searchNameStartsWith)); criteria.put(YourEntity::getCreated, Order.greaterThanOrEqualTo(searchStartDate)); criteria.put(YourEntity::getType, searchTypes); criteria.put(YourEntity::isDeleted, false);
And then later on in "the backend":
criteria.forEach((getter, value) -> requiredCriteria.put(getter.getPropertyName(), value));
This allows a type safe way of defining property names.
Inspired by Lambda parameter names with reflection. NOTE: works only in Java 8u60 and newer.
- Author:
- Bauke Scholtz
-
-
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description default Class<T>
getBaseType()
default Method
getMethod()
default String
getPropertyName()
default Class<?>
getReturnType()
default SerializedLambda
getSerializedLambda()
-