3 回答
TA贡献1785条经验 获得超4个赞
在这种情况下,您的removeFrom()
方法应该返回围绕((ArrayList<Object>) entry.getValue())
. 并且该包装器必须具有at(int index)
删除给定索引的元素的方法。
并且您还需要考虑当您modelsMap
没有给定clazz
.
TA贡献1829条经验 获得超7个赞
请检查 Builder 设计模式。尝试为一个简单的对象创建构建器设计模式,该对象几乎没有属性以及 getter 和 setter。
一旦你能够做到这一点,方法链就会看起来非常清晰。:)
TA贡献1848条经验 获得超2个赞
您可以引入一个 DaoRemover 类,您可以通过工厂方法实例化该类,并且实例方法返回当前实例。
例如 :
public class DaoRemover {
private Map<String, Object> modelsMap; // your actual data
private final List<ArrayList<Object>> list; // list of list after filtering on the class
public static DaoRemover of(Class<?> clazz) {
return new DaoRemover(clazz);
}
private DaoRemover(Class<?> clazz) {
list = modelsMap.entrySet()
.stream()
.filter(e -> e.getKey()
.equals(clazz.getSimpleName()))
.map(e -> (ArrayList<Object>) e.getValue())
.collect(toList());
}
public DaoRemover at(int index) {
list.forEach(l -> l.remove(index));
return this;
}
}
你现在可以这样做:
DaoRemover.of(MyObject.class)
.at(myIndex);
或者
DaoRemover.of(MyObject.class)
.at(myIndex)
.at(myOtherIndex);
添加回答
举报