azeDevs
03/13/2019, 10:20 PMbbaldino
03/13/2019, 10:23 PMazeDevs
03/13/2019, 10:28 PMFuzzyFinder find = new FuzzyFinder<Kit>(new FuzzyFinder.LookupEntity<Kit>() {
@Override
public Result<Kit> lookup(Kit entity) {
return new Result<>(entity, entity.getQuery());
}
});
azeDevs
03/13/2019, 10:29 PMFuzzyFinder find = new FuzzyFinder<Kit>(entity -> new Result<>(entity, entity.getQuery()));
Ben
03/13/2019, 10:30 PMbbaldino
03/13/2019, 10:31 PMclass Result<T>
abstract class Kit {
abstract fun getQuery(): Result<Kit>
}
typealias FuzzyFinder = (Kit) -> Result<Kit>
val finder: FuzzyFinder = Kit::getQuery
azeDevs
03/13/2019, 10:34 PM@FunctionalInterface public interface LookupEntity<T> { Result<T> lookup(T entity); }
azeDevs
03/13/2019, 10:35 PMFuzzyFinder<T>
and then inferred by LookupEntity<T>
to return Result<T>
bbaldino
03/13/2019, 10:36 PMT
and returns a Result<T>
. you could do typealias FuzzyFinder<T> = (T) -> Result<T>
bbaldino
03/13/2019, 10:37 PMval finder: FuzzyFinder<XXX> = YYY
where YYY
can be any function/function reference that takes a single XXX
type and returns Result<XXX>
azeDevs
03/13/2019, 10:38 PMazeDevs
03/13/2019, 10:39 PMbbaldino
03/13/2019, 10:39 PMbbaldino
03/13/2019, 10:39 PMazeDevs
03/13/2019, 10:40 PMDico
03/14/2019, 1:17 AMval list = objects.toMutableList()
list.sortBy { it.query }
Dico
03/14/2019, 1:19 AMDico
03/14/2019, 1:20 AMazeDevs
03/14/2019, 2:04 PMazeDevs
03/14/2019, 2:05 PM