I would like to rewrite this function using streams if possible.
public void onTransfer(TransferEvent event) {
StringBuilder builder = new StringBuilder();
for (Object item : event.getItems()) {
Permission perm = Permission.valueOf((String) item);
try {
if (event.isAdd()) {
currentRole.add(perm);
} else {
currentRole.remove(perm);
}
} catch (Exception e) {
addErrorMessage("", e.getLocalizedMessage());
LOGGER.error(e.getMessage(), e);
}
builder.append(perm.name()).append(";");
}
addMessage("", "Transfered permissions " + builder.toString() + " from/to role :" + currentRole.getName());
}
Thank you in advance!
Rewriting this to stream-functions would look like this:
event.getItems().stream()
.map(item -> Permission.valueOf((String) item))
.forEach(perm -> {try-clause})
addMessage(event.getItems().stream()
.map(item -> Permission.valueOf((String) item).name())
.collect(Collectors.joining(";", "Transfered permissions ", " from/to role :" + currentRole.getName()));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.