-1
,則應用過濾器如果條件滿足(條件:如果爲principal.isAdministrator())此代碼序列,我想對用戶應用/或不進行過濾。如果條件爲
for (User oneUser : subcontractorUserRole.getUsers()
.filter(new OTMFilter(Identity.CompanyEmployeeRel.class, selectedCounty.getSubcontractor()))
.filter(Identity.DELETED, false))
users.add(new GenericItem(oneUser.getId(), oneUser.getName()));
我想要做這樣的事情:
if (principal.isAdministrator() {
for (User oneUser : subcontractorUserRole.getUsers()
//.filter(new OTMFilter(Identity.CompanyEmployeeRel.class, selectedCounty.getSubcontractor()))
.filter(Identity.DELETED, false))
users.add(new GenericItem(oneUser.getId(), oneUser.getName()));
} else {
for (User oneUser : subcontractorUserRole.getUsers()
.filter(new OTMFilter(Identity.CompanyEmployeeRel.class, selectedCounty.getSubcontractor()))
.filter(Identity.DELETED, false))
users.add(new GenericItem(oneUser.getId(), oneUser.getName()));
}
你知道一個優雅的方式來寫這個不重複的循環?我可以使用其他Java 8 ...
謝謝。
看看戰略模式。在這種情況下,我會做一個獲取'oneUser'的函數,它需要一個bool(isAdmin)並相應地設置過濾器。鑑於市政管理人員是否是管理人員,沒有其他副作用。 – Fildor