Tet*_*Oni 5 java generics collections coding-style
在不添加新的外部库依赖项的情况下向我们的代码库引入一些收集操作的优点,我们将这些方法添加到我们的实用程序包中.
static public List<T> filter(List<T> source, Predicate<T> filter);
static <Y,T> public List<Y> transform(List<T> source, Mutator<Y,T> filter);
static public boolean exists(List<T> source, Predicate<T> filter);
static public T findFirst(List<T> source, Predicate<T> filter);
static public boolean trueForAll(List<T> source, Predicate<T> filter);
Run Code Online (Sandbox Code Playgroud)
随附接口
public interface Predicate<T> { public boolean apply(T item); }
public interface Mutator<T,Y> { public Y apply(T item); }
Run Code Online (Sandbox Code Playgroud)
所以问题:
编辑添加:我对地图的一个重要论点(因而支持变换)是由于java.util.Map的许多用途,地图具有显着的语义加载
我将它们称为“地图”和“过滤器”。对我而言,Reduce 的含义略有不同,而 Transform 则太模糊了。至于类名,Filters可能不是最好的,但我也没有更好的推荐。
我知道您并没有具体要求这一点,但通用方法中的一些签名可以改进:
static public <T> List<T> filter(List<T> source, Predicate<? super T> filter);
static public <Y,T> List<Y> transform(List<T> source, Mutator<Y,? super T> filter);
static public <T> boolean exists(List<T> source, Predicate<? super T> filter);
static public <T> T findFirst(List<T> source, Predicate<? super T> filter);
static public <T> boolean trueForAll(List<T> source, Predicate<? super T> filter);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |