我想知道是否可以将两个比较器组合成一个比较器,用于两个完全不同的类.对象将按字符串类型名称属性按字母顺序排序,该属性存在于两个类中,这就是我创建单个比较器的原因.
/**
* Comparator to sort Book or Magazine alphabetically based on
* their String type name property.
*/
public class BookOrMagazineComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
if (o1 != null && o2 != null) {
if (o1 instanceof Book && o2 instanceof Book) {
Book b1 = (Book) o1;
Book b2 = (Book) o2;
return b1.getName().compareTo(b2.getName());
} else if (o1 instanceof Magazine && o2 instanceof Magazine) {
Magazine m1 = (Magazine) o1;
Magazine m2 = (Magazine) o2;
return m1.getName().compareTo(m2.getName());
}
}
return 0;
}
}
如果我使用上述方法会有任何副作用吗?
编辑:我想补充一点,书/杂志实际上是枚举.