我有一堆类似于实用程序的方法,看起来非常相似,例如:
public static void addLeadingAttorney(EventAttorneyModel newAttorney,
List<EventAttorneyModel> existingAttorneys) {
for (EventAttorneyModel existingAttorney : existingAttorneys) {
existingAttorney.setSequence(existingAttorney.getSequence() + 1);
}
newAttorney.setSequence(1L);
existingAttorneys.add(0, newAttorney);
}
public static void addLeadingAttorney(CaseAttorneyModel newAttorney,
List<CaseAttorneyModel> existingAttorneys) {
for (CaseAttorneyModel existingAttorney : existingAttorneys) {
existingAttorney.setSequence(existingAttorney.getSequence() + 1);
}
newAttorney.setSequence(1L);
existingAttorneys.add(0, newAttorney);
}
类
EventAttorneyModel
和CaseAttorneyModel
是JPA实体,除了Object
类之外没有其他共同的前身。我想知道是否有一种方法可以避免重复代码,因为将来会有很多这样的方法?
最佳答案
我认为最好的方法是创建一个界面
interface AttorneyModel{
public void setSequence(Long l);
}
并让2个类实现它们,并具有如下方法签名
public static <T extends AttorneyModel> void addLeadingAttorney(T newAttorney,
List<T> existingAttorneys) {