我有一些复杂的对象,比如猫,它有很多属性,比如年龄,喜欢的猫食等等。
,我可以编写一个自定义方法来查找那些具有特定属性的Cat,但这会让许多属性变得繁琐; 有没有一些通用的方式来做到这一点?
发布于 2018-03-06 10:40:22
你可以编写一个方法,该方法需要一个定义check(Cat)
方法的接口实例,该方法可以用任何你想要的属性检查来实现:
public interface Checker<T> {
public boolean check(T obj);
}
public class CatChecker implements Checker<Cat> {
public boolean check(Cat cat) {
return (cat.age == 3); // or whatever, implement your comparison here
}
}
// put this in some class
public static <T> Collection<T> findAll(Collection<T> coll, Checker<T> chk) {
LinkedList<T> l = new LinkedList<T>();
for (T obj : coll) {
if (chk.check(obj))
l.add(obj);
}
return l;
}
https://stackoverflow.com/questions/-100003580
复制相似问题